PHP7中文手册2018 带注释 最新chm版
PHP类型
PHP 支持 8 种原始数据类型。
标量类型:boolean(布尔型)、integer(整型)、float(浮点型,也称作 double) 和 string(字符串)
复合类型: array(数组)和 object(对象)
特殊类型:resource(资源)和 NULL(无类型)
一、布尔类型
boolean表示真假,使用关键字为true或false,通常运算结果会返回给控制流程。两者不区分大小,但建议用小写,php编译时候会转成小写。
以下几种情况的转换会被认为是false: 布尔值 FALSE 本身
整型值 0
浮点型值 0.0
空字符串,以及字符串 "0"
不包括任何元素的数组
不包括任何成员变量的对象(仅 PHP 4.0 适用)
特殊类型 NULL(包括尚未赋值的变量)
从空标记生成的 SimpleXML 对象
二、整型
整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。
要使用八进制表达,数字前必须加上 0(零)。要使用十六进制表达,数字前必须加上 0x。要使用二进制表达,数字前必须加上 0b。
如果向八进制数传递了一个非法数字(即 8 或 9),则后面其余数字会被忽略。 如下例(八进制数的怪事):
<?php
var_dump(01090); // 八进制 010 = 十进制 8
?>
整型转函数:
(int)或(integer)强制转换
intval()
三、浮点型
浮点型(也叫浮点数 float,双精度数 double 或实数 real)
注意:1和1.0是不相等的,1.0的浮点,真实的值只能是无线接近于1而不等于一的。如判断 if(1==1.0)是返回false的。 四、字符串
一个字符串是由一系列的字符组成,其中每个字符等同于一个字节。这意味着 PHP 只能支持 256 的字符集,因此不支持 Unicode 。
string 最大可以达到 2GB。
一个字符串可以用 4 种方式表达:
单引号
双引号
heredoc 语法结构
nowdoc 语法结构(自 PHP 5.3.0 起)
4.1 单引号
在单引号中的字符串要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\)。其它任何方式的反斜线都会被当成反斜线本身:也就是说如果想使用其它转义序列例如 \r 或者 \n,并不代表任何特殊含义,就单纯是这两个字符本身。
在单引号字符串中的变量和特殊字符的转义序列将不会被替换。 4.2 双引号
如果字符串是包围在双引号(")中, PHP 将对一些特殊的字符进行解析:
\n 换行(ASCII 字符集中的 LF 或 0x0A (10)) \r 回车(ASCII 字符集中的 CR 或 0x0D (13)) \t 水平制表符(ASCII 字符集中的 HT 或 0x09 (9)) \v 垂直制表符(ASCII 字符集中的 VT 或 0x0B (11))(自 PHP 5.2.5 起) \e Escape(ASCII 字符集中的 ESC 或 0x1B (27))(自 PHP 5.4.0 起) \f 换页(ASCII 字符集中的 FF 或 0x0C (12))(自 PHP 5.2.5 起) \ 反斜线 \$ 美元标记 \" 双引号 [0-7]{1,3} 符合该正则表达式序列的是一个以八进制方式来表达的字符 \x[0-9A-Fa-f]{1,2} 符合该正则表达式序列的是一个以十六进制方式来表达的字符
4.3 Heredoc 结构
第三种表达字符串的方法是用 heredoc 句法结构:<<<。在该运算符之后要提供一个标识符,然后换行。接下来是字符串 string 本身,最后要用前面定义的标识符作为结束标志。
结束时所引用的标识符必须在该行的第一列,而且,标识符的命名也要像其它标签一样遵守 PHP 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。
4.4 Nowdoc 结构
就象 heredoc 结构类似于双引号字符串,Nowdoc 结构是类似于单引号字符串的。Nowdoc 结构很象 heredoc 结构,但是 nowdoc 中不进行解析操作。这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义。
例子:
<?php
echo <<<'EOT'
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': \x41
EOT;
?>
五、数组
PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。由于数组元素的值也可以是另一个数组,树形结构和多维数组也是允许的。 六、对象
要创建一个新的对象 object,使用 new 语句实例化一个类 七、资源类型
资源 resource 是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。 八、其他类型 8.1 NULL
特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。
在下列情况下一个变量被认为是 NULL:
被赋值为 NULL
尚未被赋值
被 unset()
8.2 伪变量
当一个方法在类定义内部被调用时,有一个可用的伪变量 $this。$this 是一个到主叫对象的引用(通常是该方法所从属的对象,但如果是从第二个对象静态调用时也可能是另一个对象)。 8.3 回调(Callback)
自 PHP 5.4 起可用 callable 类型指定回调类型 callback。本文档基于同样理由使用 callback 类型信息。
一些函数如 call_user_func() 或 usort() 可以接受用户自定义的回调函数作为参数。回调函数不止可以是简单函数,还可以是对象的方法,包括静态类方法。