2.2 数据类型
PHP属于弱类型语言。这就是说,变量的数据类型一般不用开发人员指定,PHP会在程序执行过程中,根据程序上下文环境决定变量的数据类型。如一串数字“789”,在用echo语句输出时,它作为字符串处理;但是做数学运算时,它就作为整数处理。PHP的变量主要有:整数类型、浮点类型、字符串类型、布尔类型、数组类型及对象类型。
下面将介绍除对象类型之外的数据类型,对象类型将作为单独的章详细阐述。
2.2.1 整数类型:integer
可以在PHP中指定的整数包括十进制、八进制和十六进制,整型数值前可以加上符号“+”或“-”。指定方式如下。
$i = 2468; // 指定一个十进制整数 $i = -1357; // 指定一个负数 $i = 0123; // 指定一个八进制数 $i = 0x456; // 指定一个十六制数
对于八进制数,需要在数字前面加上数字0,对于十六进制数,需要在数字前面加上0x。
2.2.2 浮点类型:float
PHP中浮点数的表示形式有两种,为十进制形式和指数形式。浮点数由数字和小数点组成,如0.1234、1.234等。如下是一个指定浮点型变量的示例代码。
$f = 12.34; // 指定变量$f 的值为12.34
也可以用如下形式指定指数形式的浮点数。
$f = 1.2e3; // 表示将1.2 乘以10 的3 次方指定给变量$f
2.2.3 字符串类型:string
一串字符组成一个字符串,如abcdef就是一个字符串。在PHP中常用双引号(“”)或单引号('')指定一个字符串。如下示例代码使用双引号指定一个字符串“PHP string”。
$s = "PHP string";
使用双引号指定的字符串,如果字符串中含有变量,那么这个变量将会被其实际内容(即变量的值)替换,例如如下代码。
$v = "string"; $s = "PHP$v";
其中,由双引号指定的字符串“PHP$v”中含有变量$v,因此$s的最终结果是:PHPstring。如果希望输出的是$v本身而不是其变量的值,就需要对特殊符号“$”做转义处理。在特殊符号“$”前加上反斜杠“\”就可以输出符号“$”本身。例如如下代码。
$v = "string"; $s = "PHP\$v";
变量$s的最终结果将会是:PHP$v。使用反斜杠(\)指定特殊的字符,这叫做字符转义。例如在双引号指定的字符串中,要使用双引号“””,就应该这样写“\”,这样就在字符串中添加了一个双引号。表2-1列举了PHP中主要特殊字符的转义字符及其含义。
表2-1 转义字符及其说明
在PHP中也可以使用单引号指定字符串。与双引号不同的是,单引号指定的字符串,不会对其中的变量用变量的值做替换,也不会对除“\”和“””之外的字符做转义。代码2-2演示了使用单引号、双引号指定字符串的区别,以及如何进行字符转义,从而输出特殊字符。
代码2-2 PHP中的字符串和字符转义2-2.php
01 <?php 02 $s = "new string"; 03 04 // 下面双引号字符串中的符号"$" 未做转义,因此$s 将被替换成其变量的值 05 $str_1 = " 双引号指定的字符串,$s"; 06 07 // 下面双引号字符串中的符号"$" 做了转义,因此$s 原封不动,不会被替换为变量$s 的值 08 $str_2 = " 双引号指定的字符串,\$s"; 09 10 // 单引号字符串中的"$" 不用做转义即可原样输出 11 $str_3 = ' 单引号指定的字符串,$s'; 12 13 $str_4 = ' 单引号指定的字符串,\$s'; 14 15 // 在双引号字符串中,输出$ 、" 、等特殊字符,需要做转义 16 $str_5 = " 在双引号字符串中,输出特殊字符:\$ \" \\ '"; 17 18 // 在单引号字符串中,输出' ,需要做转义 19 $str_6 = ' 在单引号字符串中,输出特殊字符:$ " \ \''; 20 21 echo $str_1; 22 echo "<br/>"; 23 echo "<br/>"; 24 25 echo $str_2; 26 echo "<br/>"; 27 echo "<br/>"; 28 29 echo $str_3; 30 echo "<br/>"; 31 echo "<br/>"; 32 33 echo $str_4; 34 echo "<br/>"; 35 echo "<br/>"; 36 37 echo $str_5; 38 echo "<br/>"; 39 echo "<br/>"; 40 41 echo $str_6; 42 ?>
【代码解析】看过前面的说明后,很多读者会以为,只要是前面带转义符号\,就会原样输出字符串内容。但第11行和第13行都原样输出了$s,即单引号状态下定义的字符串,不管用不用转义符,输出都一样。上述程序的执行结果如图2-2所示。
这里简单提及一下,在PHP中通常使用英文句点(.)来连接两个字符串,例如代码2-3所示。
代码2-3 PHP字符串的连接2-3.php
01 <?php 02 $s1 = "PHP in "; 03 $s2 = "Windows"; 04 $s = $s1.$s2; 05 06 echo '$s1='.$s1; 07 echo "<br/>"; 08 echo "<br/>"; 09 10 echo '$s2='.$s2; 11 echo "<br/>"; 12 echo "<br/>"; 13 14 echo '$s='.$s; 15 echo "<br/>"; 16 echo "<br/>"; 17 ?>
【代码解析】上述程序中,变量$s由$s1和$s2连接而成,执行结果如图2-3所示。
图2-2 PHP字符串的用法及字符转义
图2-3 PHP字符串的连接
2.2.4 布尔类型:boolean
布尔类型是最简单的数据类型,它只有两个取值,为TRUE(或1)和FALSE(或0)。这两个值都不区分大小写。TRUE(或1)表示“真”(真值),FALSE(或0)表示“假”(伪值)。
例如定义两个布尔型变量,代码如下。
$flag = true; // 为变量设置值为TRUE; $run = FALSE; // 为变量设置值为FALSE;
2.2.5 数组类型:array
前文讲述的变量都是标量变量,标量变量的含义是一个被命名的存储一个数值的空间,而数组是一个被命名的存放一组数值的空间。这里的数值可以是整数、浮点数、字符串,甚至可以是数组、对象等。如下代码指定了一个数组。
$arr = array('spring','summer','fall','winter');
在PHP中使用array()语言结构建立一个数组。如上代码定义了名为$arr的数组,它包含4个值:spring、summer、fall和winter。数组中的值叫做“元素”,每个元素和一个“索引”(或称“键”、“下标”)相关联,通过“索引”可以访问数组元素。例如要输出上例数组$arr中的元素spring,可以使用如下代码。
echo $arr[0];
输出$arr[0]就会显示字符串spring。PHP数组的索引一般从0开始计数,要访问$arr的元素fall,就要使用$arr[2]。PHP数组除支持数字索引外,还支持字符串索引,即关联数组,这种数组通过字符串索引和元素关联,示例如代码2-4所示。
代码2-4 关联数组2-4.php
01 <?php 02 $sys = array( 03 "server"=>"Apache", 04 "os"=>"Windows", 05 "db"=>"MySQL", 06 ); // 定义一个数组$sys 07 08 echo $sys["server"]; // 通过字符串索引输出$sys["server"] 的值 09 echo "<br/>"; 10 echo "<br/>"; 11 echo $sys["db"]; 12 ?>
图2-4 访问关联数组
【代码解析】代码第02~06行定义了一个关联数组$sys,第08行通过$sys["server"]可以取得数组元素“Apache”。程序执行结果如图2-4所示。
共有条评论 网友评论