2.2.2 变量的数据类型
PHP属于弱类型语言。也就是说,变量的数据类型一般不用开发人员指定,PHP会在程序执行过程中,根据程序上下文环境决定变量的数据类型。如一串数字“789”,在用echo语句输出时,它作为字符串处理,但是做数学运算时,它就作为整数处理。PHP的变量主要有以下类型:
❑整数类型
❑浮点类型
❑字符串类型
❑布尔类型
❑数组类型
❑对象类型
下面将介绍除对象类型之外的数据类型,对象类型将单独放在第14章做阐述。
1.整数类型:integer
可以在PHP中指定的整数包括十进制、八进制和十六进制,整型数值前可以加上符号“+”或“-”。指定方式如下所示。
$i=2468;//指定一个十进制整数
$i=-1357;//指定一个负数
$i=0123;//指定一个八进制数
$i=0x456;//指定一个十六进制数
对于八进制数,需要在数字前面加上数字0,对于十六进制数,需要在数字前面加上0x。
2.浮点类型:float
PHP中浮点数的表示形式有两种:十进制形式和指数形式。浮点数由数字和小数点组成,如0.1234、1.234等。下面是一个指定浮点型变量的示例代码。
$f=12.34;//指定变量$f的值为12.34
也可以用下面的形式指定指数形式的浮点数。
$f=1.2e3;//表示将1.2乘以10的3次方指定给变量$f
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主要特殊字符的转义含义。
在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所示。
4.布尔类型:boolean
布尔类型是最简单的数据类型,它只有两个取值:TRUE(或1)或FALSE(或0),这两个值都不区分大小写。TRUE(或1)表示“真”(真值),FALSE(或0)表示“假”(伪值)。
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~6行定义了一个关联数组$sys,第8行通过$sys["server"]可以取得数组元素“Apache”。程序执行结果如图2-4所示。
共有条评论 网友评论