一、深刻理解php是弱类型语言,这也是它能高效开发的主要原因之一
二、变量和常量(默认情况下)区分大小写,但是函数不区分大小写
三、字符串可以直接拿来做变量名
$a = 'hello';
$b='a';
echo $$b; // hello
四、php中的八种数据类型
中 英 法
整型 integer les entiers
浮点型 float nombres décimaux
布尔型 boolean booléen
字符串 string les chaînes de caractères
数组 array les tableaux
对象 object les objets
资源 resource les ressources
null null null
五、整型
$i = 15; // 十进制 décimal
$i = 017; // 八进制 octal
$i = 0xf; // 十六进制 héxadecimal
$i = 0b1111; // 二进制 binaire
php 不支持无符号
win 32位或64位,PHP_INT_SIZE 返回都是4,代表4个字节,由于win不再支持64位的整型
PHP_INT_MAX 32位 为 2147483647 environ 2 millards,
linux 64位 则返回 8,代表八个字节
64位 为 9223372036854775807 environ 9e18
整数溢出 débordement d'entier
如果数字超出整数范围,将被解释为float型
六、浮点型
$float1 = 3.14; // 3.14
$float2 = 3.14e2; // 314
$float3 = 3.14e-1; // 0.314
浮点数能表示的最大值大约为 1.8e308,14位数的精度
由于一些浮点数以二进制保存时是无法精确保存的,所以取整会有误差,最大相对误差为 1.11e-16,但是非数***算误差会更大,还要考虑到复合运算的误差传递,所以不要相信浮点数结果精确到了最后一位。
例如 floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8
七、布尔型
true 或 false 不区分大小写
当转换为布尔型时 为假的有
0
0.0
空字符串 或 字符串 “0”
空数组
null
字符串 “false” 是转换成布尔型为真
八、字符串
单引号
只能反义单引号本身和反斜线
双引号
可以直接解析变量和转义符
定界符
Heredoc 结构,相当于双引号
<<<hi
hi;
hi为标识符,可以是字母,数字,下划线,但是不能以数字开头。
hi;作为结尾时,必须顶格,分号必须紧挨标识符,后面也不能有其他符号,只能换行
Nowdoc 结构,相当于单引号
<<<’hi’
hi;
用法与 Heredoc相同
解析变量
双引号可以解析变量,数组中的一个值,对象中的一个属性,但不能解析常量,复杂时可使用花括号包围变量
附一张表格,php官方手册的转义字符表
九、常量
define(“MINGCHENG”, “zhi”) 定义常量,默认大小写敏感,可加入第三个变量 true 大小写不敏感 或 false 大小写敏感,默认为false
defined(“MINGCHENG”) 判断常量是否定义
常量不能更改或删除,如果重复定义,notice错误,只保留第一次定义的值
常量为全局变量
常量只可以定义 int, float, bool, string 和 null