php的一些易错知识点整理

1. 取模运算结果的正负仅取决于被除数

被除数为正,结果为正;被除数为负,结果为负。

echo ((-8)%3);     // 将输出-2

echo (8%(-3));      // 将输出2

2. 全等于(===)和等于(==)的区别

两者都属于比较运算符,==(等于)只比较值是否相等,而===(全等于)则不但比较值是否相等,还会比较类型是否相等,它更为严格。

3.  递增递减运算

运算符在前先运算后赋值,运算符在后先赋值后运算

php的一些易错知识点整理

4. 单引号和双引号区别

  • 对于转义:单引号只能转义\'\\,双引号转义内容较为广泛;
  • 对于解析:单引号不解析变量,双引号可以解析变量;
  • 对于效率:单引号效率较高,因为它不解析变量;

注意:双引号中插入单引号,若单引号中存在变量,变量会被解析。因为单引号效率高,所以没有特殊情况一般使用单引号。

5. PHP类中使用全局变量和全局常量

  • 全局常量可以直接用,但全局常量不能用来运算
  • 类中不能直接使用global,可以在方法中传入global全局变量

6. isset函数检测值为NULL的变量也返回false

若变量不存在则返回 FALSE,若变量存在且其值为NULL,也返回 FALSE

7. 浮点数计算存在不精确的问题

计算0.3-0.2其值并不完全等于0.1,这是因为计算机底层二进制无法精确表示浮点数的问题。这是跨语言的。

8. 字符串连接符点号和逗号区别

点号是字符串连接符,逗号并不是。只是在echo 输出多个东西时可以用逗号分开。

echo 'a' . 'b'. 'c'; 是将三个字符串拼接之后输出

echo 'a', 'b', 'c'; 是依次输出三个字符串

理论上在 echo 的时候用“逗号”性能会高一点

9. 逻辑运算的短路特性

短路与 &&,短路或 ||,or、||、and、&& 都是短路运算符

&&(and)短路与运算符检查第一个表达式是否返回“flase”,如果是“false”则结束语句并返回“false”,否则检查第二个表达式。

|| (or)短路或运算符检查第一个表达式是否返回“true”,如果是“true”则结束语句并返回“true”,否则检查第二个表达式。

用法:常用逻辑判断

例如:$a || $b = 1

weinxin
我的微信
扫一扫加我微信
echo

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: