第一章 PHP快速入门教程
1.1 使用PHP
1.2 创建一个示例应用: Bob's Auto Parts(Bob汽车零部件商店)
1.2.1 创建订单表单
表单中输入的数据将按照METHOD属性中指定的方法发送到这个URL,该方法可以是GET(附加在URL的结尾)或POST(以单独消息的形式发送)。表单域中的名称——tireqty、oilqty和sparkqty。在这个PHP脚本中,我们还将使用这些名称。正是由于这一点,
给表单域定义有意义的名称是非常重要的。
如果表单域名称能够反映输入到该域的数据,PHP编程
工作就会变得更加轻松。
1.2.2 表单处理
1.3.1 使用PHP标记
<?php和?>叫做PHP标记。
1.3.2 PHP标记风格
PHP标记有4种不同的风格可供我们使用。
XML风格:<?php echo '<p>Order Processed.</p>'; ?>这是PHP推荐使用的标记风格。
简短风格:<? echo '<p>Order Processed.</p>'; ?>
它遵循SGML处理说明的风格。要使用这种标记风格——输入字符最少——你必须在配置文件中启用short_open_tag选项,或者启用短标记选项编译PHP。
scrīpt风格:<scrīpt LANGUAGE='php'> echo '<p>Order Processed.</p>'; </scrīpt>
ASP风格:<% echo '<p>Order Processed.</p>'; %>
这种标记风格与ASP或ASP.NET的标记风格相同。如果在配置认定中启用了asp_tags选项,就可以使用它。
1.3.3 PHP语句
使用echo语句具有一个非常简单的结果,它将传递给其自身的字符串打印(或者回显)到浏览器。
1.3.4 空格
在PHP中,分号是用来分隔语然的,就像英文的逗号用来分隔句子。
间隔字符,例如换行(回车)、空格和Tab(制表符),都被认为是空格。
浏览器将会忽略HTML的字格字符。PHP引擎同样会忽略这些空格字符。虽然PHP语句之间完全没有必要添加任何空格字符,但是如果每一行放置一条单独的语句,将便于我们阅读
代码。
1.3.5 注释
PHP支持C、C++和Shell脚本风格的注释。
C风格注释。多行注释可以出现在PHP脚本的开始处。
/* Author: Bob Smity
Last modified: Aprial 10
This scrīpt processed the customer orders.
*/
多行注释是无法嵌套的。
C++风格的单行注释:
echo '<p>Order Processed.</p>'; // Start printing order
Shell脚本风格:
echo '<p>Order Processed.</p>'; # Start printing order
无论何种风格的注释,在注释符号(#或//)之后行结束之前,或PHP结束标记之前的所有内容都是注释。
1.4 添加动态内容
echo date('H:i, jS F');
结果:
12:42, 26th March
1.4.1 调用函数
1.4.2 使用date()函数
date()函数需要一个传递给它的变量是格式化字符串,这个字符串表示所需要的输出格式。H是24小时格式的小时,i是分钟,如果小时数和分钟数是个位数,需要在前面补0,j是该月的日期,不需要前面的补0,而s表示顺序后缀,F是月份的全称。
1.5 访问表单变量
1.5.1 表单变量
在PHP脚本中,可以以PHP变量的形式访问每一个表单域,其中PHP变量名称必须与表单域的名称一致。
可以有3种方法来访问表单数据:
$tireqty // short style
$_POST['tireqty'] // medium style
$HTTP_POST_VARS['tireqty'] // long style
简短风格($tireqty):非常方便,但是需要将register_globals配置选项设置为on。在PHP 4.2.0以后的所有版本中,该配置的默认值为off。以前,该配置的默认值为on。这个风格也可能会使你遇到代码不安全的错误,因此我们不再推荐这种风格。
中等风格($_POST['tireqty']):是如今所建议的。
冗长风格($HTTP_POST_VARS['tireqty']):是最详细的,但是请注意,它已经过时。
中等风格涉及了从$_POST、$_GET或$_REQUEST数组之一检索变量。$_GET或$_POST数组之一都可以保存表单变量的细节。使用哪一个数组取决于提交表单时使用的方法是POST还是GET。此外,通过POST或GET方法提交的所有数据都可以通过$_REQUEST数组获得。
这些数组被称作是超级全局(superglobal)变量。
由于冗长风格和中等风格的变量名称在一定程序上是比较繁琐的,而且还依赖于变量类型,因此我们将从创建便于使用的复制操作开始。
可以使用赋值操作符将一个变量值复制给另一个变量。$tiregty = $_POST['tireqty'];
1.5.2 字符串的连接
点号是字符串连接符,它可以将几段文本连接成一个字符串。
对于任何非数组变量,也可以将变量写入到一个由双引号引用起来的字符串中(数组变量要复杂一点)。
echo "$tireqty tires<br />"; 等价于 echo $tireqty.' tires<br />';
用一个字符串的内容来代替一个变量的操作就是插补(interpolation)。
插补操作只是双引号引用的字符串的特性之一。不能像这样将一个变量名称放置在一个由单引号引用的字符串中。
在双引号中,变量名称将被变量值所替代,而在单引号中,变量名称,或者任何其他的文本都会不经修改而发送给浏览器。
1.5.3 变量和文本
已经介绍的两种字符串类型——一种是具有双引号的,而另一种是具有单引号的,PHP将试着计算双引号字符串,而单引号字符串将被当作是真正的文本。
新增加的第3种指定字符串的方法,heredoc语法(<<<)。通过指定一个用来结束字符串的结束标记,Heredoc语法允许指定长字符串。
theEnd标记是非常模糊的。它只需要保证不会出现在文本中。要关闭一个heredoc字符串,可以在每一行的开始处放置一个关闭标记。
Heredoc字符串是插补的,就像双引号字符串。
1.6 理解标识符
标识符是变量的名称(函数和类的名称也是标识符)。标识符的规则:
标识符可以是任何长度,而且可以由任何字母、数字、下划线组成。
标识符不能以数字开始。
标识符是区分大小的。函数名称则可以是任意大小字的。
一个变量名称可以与一个函数名称相同。虽然这是允许的,但应该尽量避免。
1.7 创建用户声明的变量
PHP不要求在使用变量之前声明变量。当第一次给一个变量赋值时,你才创建了这个变量。
1.8 给变量赋值
可以使用赋值操作符(=)给一个变量赋值。
1.9 检查变量的类型
1.9.1 PHP的数据类型
Integer(整数)——用来表示整数。
Float(浮点数,也叫Double,双精度)——用来表示所有的实数。
String(字符串)——用来表示字符串。
Boolean(布尔)——用来表示true或false。
Array(数组)——用来保存具有相同类型的多个数据项。
Object(对象)——用来保存类的实例。
此外还有两个特殊的类型:
NULL(空)和
resource(资源)。没有被赋值、已经被重置或者被赋值为特殊值NULL的变量就是NULL类型的变量。特定的内置函数(例如
数据库函数)将返回resource类型的变量。它们都代表外部资源(例如数据库连接)。基本上不能直接操作一个resource变量,但是通常它们都将被函数返回,而且必须作为参数传递给其他函数。
1.9.2 类型强度
PHP是一种非常弱的类型语言。在PHP中,变量的类型是由赋给变量的值确定的。
PHP可以在任何时间根据保存在变量中的值来确定变量的类型。
PHP将“自动地”获得输入的数据类型。一旦从变量中检索变量值,它将返回具有相同数据类型的数据。
1.9.3 类型转换
使用类型转换,可以将一个变量或值转换成另一种类型。
如: $totalamount = (float)$totalqty;
1.9.4 可变变量
可变变量允许我们动态地改变一个变量的名称。
这个特性的工作原理是用一个变量的值作为另一个变量的名称。
如: $varname = 'tireqty'; $$varname =5; 等价于:$tireqty= 5;
1.10 声明和使用常量
一个常量可以保存一个值,但是常量值一旦被设定后,在脚本的其他地方就不能再更改。
如:define('TIREPRICE', 100);
常量名称都是由大写字母组成的。这样就可以很容易区分变量和常量。这个惯例并不是必需的,但是它却可以使代码变得更容易阅读和维护。
在引用一个常量的时候,它前面并没有$符号。如果要使用一个常量的值,只需要使用其名称就可以了。如:echo TIREPRICE;
PHP还预定义了许多常量。了解这些常量的简单方法就是运行phpinfo()命令。
变量和常量的另一个差异在于常量只可以保存布尔值、整数、浮点数或字符串数据。这些类型都是标量数据。