- 变量:声明变量以$开始,变量名可以用中文但是不要用;不能使用特殊字符,比如@,下划线除外;变量名区分大小写。可变变量 $a = b; $b = c; => $$a = c; 理论上$可以无限使用,但是正常最多使用两个。
- 十六进制:0x开头,八进制:0开头,二进制:0b开头。
- 变量类型:int 包括0、正整数、负整数; float:3.00、3e2、都是浮点数。字符串:单引号、双引号、定界符声明的都是字符串。
- 单引号双引号区别:解析转义字符;解析变量;能用单引号就用单引号(效率比双引号高),大段文本才考虑使用定界符。
- bool值,使用echo输出bool值,false不显示,true显示1.
- null :未赋值的变量、被unset删除的变量、
- 和变量相关的3个功能:删除变量的unset()、检测变量isset()、empty()【资源和对象都不为空】
- 获取数据类型:gettype()可以获取八种数据类型,但是效率低。可以使用is_int() is_float() 等等 is_numeric()检测是否是数字(int、float、纯数字字符串)is_scalar()检测是否是标量。
- 数据类型转换:自动转换和强制转换。自动转换只限于标量。转换过程中向着更精确的数据类型转换。强制转换:(int)$var; 对象和null无法转换,其他都可以。(resource)$var;//不行intval($var);stringval($var);等 settype($var,'int');
- 常量 define('NAME','shazi'); 第三个参数设置为true时,不区分大小写,默认false区分大小写。 常量的值 只能是 标量。PHP版本7以后,常量的值可以是数组。也可以使用 const NAME='shazi';
- const和define区别:const不能在流程控制中使用,define在任何地方都可以使用。选择的话,就是在类中声明常量使用const,其他地方都使用define就行。
- 系统的魔术常量:__FILE__ 表示当前文件相对于系统的绝对路径__LINE__ 表示__LINE__常量所在的行__FUNCTION__ 在函数中使用获取当前函数名__CLASS__ 在类中使用,获取当前类名__METHOD__ 在类的方法中使用获取当前方法名
- 获取常量值:constant('NAME'); get_defined_constants();获取当前定义的所有常量集合(包括页面中的,系统自带的常量) defined()检测一个常量是否被定义
- 自增自减运算符对bool值无效。
- 异或 xor 相同为假 不同为真; 逻辑非 ! 或者 not。
- 按位异或 ^ ;按位非 ~ 。
- 错误一直符:@ 命令执行符:反引号 ` ` 用于执行系统命令。
-
echo 'jjjj','nnn'; //echo 可以用逗号将字符串隔开,而print必须使用字符串连接符“ . ”。
print 'sss'.'aaa'; - PHP 7.0.0 起,NaN 和 Infinity 在转换成 时,不再是 undefined 或者依赖于平台,而是都会变成零。
- 以十进制能够精确表示的有理数如 0.1 或 0.7,无论有多少尾数都不能被内部所使用的二进制精确表示,因此不能在不丢失一点点精度的情况下转换为二进制的格式。这就会造成混乱的结果:例如,floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9999999999999991118...。所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。比较两个浮点数是否相等是有问题的。不过还是有迂回的方法来比较浮点数值的。
- heredoc结构 <<< EOF后面绝对不可以有空格或其他空白字符,不然会报错,要直接换行!!!!!