吉安哪家做网站的公司好/seo岗位有哪些
PHP的错误控制符
PHP支持一个错误的运算符:@ ;当将其放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉
运算符优先级
常用的运算符优先级如下:
递增/递减 > ! > 算术运算符 > 大小比较 > (不)相等比较 > 引用 > 位运算符(^) > 位运算符(|) > 逻辑与 > 逻辑或 > 三目 > 赋值 > and > xor > or
常考的运算符优先级如下:
递增/递减 > 算术运算符 > 大小比较 > 逻辑与 > 逻辑或 > 三目 > 赋值 >
运算符优先级
结合方向运算符附加信息
无
clone new
右
++ -- ~ (int) (float) (string) (array) (object) (bool) @
无
instanceof
左
<>
无
>=
无
== != === !== <> <=>
右
= += -= *= **= /= .= %= &= |= ^= <<= >>=
右
yield from
右
yield
比较运算符
== 和 ===的区别:
==:比较值是否相等;
===:比较值与类型是否都相等;
注意false的七种情况,都是等值的
整型 0; 浮点 0.0; 空字符串 ‘’; 零字符串 ‘0’; 布尔型 false; 空数组 array(); NULL
递增/递减运算符
递增/递减运算符不影响布尔值
ture++ 还是 ture,false++也还是false
递减NULL没有效果
递增NULL值为1
递增/递减在前就先运算再返回,在后就先返回再运算
++$a:先执行递增再返回递增后的值;
$a++:先返回值再执行递增;
逻辑运算符
短路作用
$a = true || $b == 3;// || 后面的表达式被短路,不会执行
$a = false && $b == 3;// && 后面的表达式被短路,不会执行
||、&& 和 or、and 的优先级是不一样的
$a = false || true; //"||"优先级大于"=",$a 的值是 true
$a = false or true; // "or"优先级小于"=",$a 的值是 false
示例
$a = 0;
$b = 0;
if ($a = 3 > 0 || $b = 3 > 0) {
$a++;
$b++;
echo $a . "\n";
echo $b . "\n";
}
/**
* if里面有 = > || 三个运算符,根据运算符优先级, ">" > "||" > "="
* 所以首先执行的是 3 > 0 ,然后执行 || ,3>0 为true,则|| 后面被短路 ,不被执行
* 所以$a = true ,$b = 0
* 进入if之后,$a++ ,$a还是true,$b++ ,$b = 1
* 因此最后的结果是 1 1(echo true,打印的是1)
*/
标签:false,++,递增,运算符,考察点,优先级,PHP,true
来源: https://www.cnblogs.com/starshine-zhp/p/12831599.html