文章教程

2.2.2变量的数据类型

9/17/2020 9:26:54 PM 人评论 次浏览

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所示。

图 2-2 PHP字符串的用法及字符转义

这里简单提及一下,在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-3 PHP字符串的连接

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所示。

图 2-4 访问关联数组

教程类别