PHP(3):数据类型
一、 数据类型
 
数据类型是具有相同特性的一组数据的统称。PHP早就提供了丰富的数据类型,PHP 5中又有更多补充。本节将介绍这些数据类型,可以分为3类:标量数据类型、复合数据类型和特殊数据类型。
 
1、  标量数据类型
 
标量数据类型只能包含单个的一项信息,以下都属于标量数据类型:布尔型、整型、浮点型和字符型。
 
2、  复合数据类型
 
复合数据类型允许将多个相同类型的项聚集起来,表示为一个实体。这包含数组(array)和对象(object)。
 
3、  特殊数据类型
 
特殊数据类型包括那些提供某种特殊用途的类型,因此无法归入其他任何类别。这包含资源(resource)和空(null)数据类型。
 
二、 标量数据类型
 
1、  布尔型(boolean)
 
布尔数据类型以数学家乔治·布尔(1815—1864)的姓名命名,他被认为是信息论的创始人之一。布尔变量表示真实性,只支持两个值:TRUE(真)或FALSE(假)。
当转换为 boolean 时,以下值被认为是 FALSE:
 
● 布尔值 FALSE
 
● 整型值 0(零)
 
● 浮点型值 0.0(零)
 
● 空白字符串和字符串 "0"
 
● 没有成员变量的数组
 
● 没有单元的对象(仅适用于 PHP 4)
 
● 特殊类型 NULL(包括尚未设定的变量)
 
所有其它值都被认为是 TRUE(包括任何资源)。
 
2、  整型(integer)
 
整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(- 或者 +)。
如果用八进制符号,数字前必须加上 0(零),用十六进制符号数字前必须加上 0x。
 
整型数的字长和平台有关,通常最大值是大约二十亿(32 位有符号)。PHP 不支持无符号整数。
 
如果给定的一个数超出了 integer 的范围,将会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float。
 
3、  浮点型(float或double)
 
浮点数(也叫浮点数,双精度数或实数),其字长和平台相关,通常最大值是 1.8e308 并具有 14 位十进制数字的精度(64 位 IEEE 格式)。
 
4、  字符型(string)
 
对于内容较少的字符型数据必须括成英文单引号或双引号之间。那么也就意味着单引号或双引号不能出现在字符数据之内,否则将会引起解析错误!如果内容中必须要出现单引号或双引号的话,那么就必须使用转义符!
 
5、  转义符
 
转义符固名思义就是其意思已经发生改变了,在PHP中,转义符共有以下几个:
 
转义符 
含义
\”
双引号
\’
单引号
\n
换行符
\r
回车符
\t
Tab键
\\
反斜线
\$
美元符号
 
对于双引号和单引号,我们格外来强调一下,如果是想在浏览器的效果中看到双引号或单引号,那么在PHP源代码中的双引号或单引号既可以通过HTML实体来表示,也可以通过转义符来表示(建议使用HTML实体);而如果是想在浏览器的源代码中得到双引号或单引号,那么只能通过转义符来表示了!我们通过以下的案例来说明这个问题!
 
<?php
$msg1 = stripcslashes("He said:\"I\'m fine\"");
 
$msg2 = "He said:&quot;I&#39; fine.&quot;";
 
echo("<p>{$msg1}</p>\n");
 
echo("<p>{$msg2}</p>\n");
 
?>
 
运行后的浏览器效果如下:
 
PHP(3):数据类型_数据
 
源代码如下:
 
PHP(3):数据类型_类型_02
 
经过源代码的对比,我们就发现为什么浏览器的效果中双引号或单引号用HTML实体来代表的原因了!
 
再来看看浏览器的源代码中的双引号或单引号的处理案例吧!
 
 
PHP代码:
 
<?php
 
echo("<p align=\"left\">吴华博客--http://pangdou.blog.51cto.com</p>");
 
?>
 
浏览器效果:
 
PHP(3):数据类型_类型_03
 
源代码效果:
 
PHP(3):数据类型_职场_04
 
三、 复合数据类型
 
1、  数组(array)
 
将一系列类似的项聚集在一起,并以某种特定的方式进行排列和引用。数组双具体的分为数字索引数组和关联数组
 
2、  对象(object)
 
PHP支持的另一种复合数据类型是对象。对象是面向对象程序编程(Object Oriented Programming,OOP)的核心概念。
 
四、 特殊数据类型
 
1、资源(resource)
 
PHP通常用于与一些外部数据源交互,如数据库、文件和网络流。通常,这种交互通过句柄(handle)完成,成功地连接资源时会对句柄命名。这些句柄将保持对资源的引用,直到通信结束。这些句柄就属于资源数据类型。
 
2、空值(null)
 
特殊的 NULL 值表示一个变量没有值。
 
下列情况下一个变量被认为是 NULL
 
·         被赋值为 NULL
 
·         尚未被赋值
 
·         unset()