大家学学习编程语言会接触到运算符,本文主要和大家分享php运算符集锦,希望能帮助到大家。
一、运算符优先级
递增/递减 > ! > 算术运算符 > 大小比较 > (不)相等比较 > 引用 >
位运算符(^) > 位运算符(|) > 逻辑与 > 逻辑或 > 三目 > 赋值 > and > xor > or
括号的使用可以增加代码可读性,推荐使用
二、比较运算符
2.1、== 和 === 的区别
==: 比较值
===:比较值 和 比较类型
2.2、等值判断(FALSE的七种情况)
0, 0.0, ' ', '0', false, array(), null
2.3、递增递减不影响布尔值
2.4、递减NULL值没有效果,但是递增NULL值为1
三、逻辑运算符
3.1、短路作用
$a = true || $b == 3;//$b 不执行
$b = false && $a == 1;//$a 不执行
3.2、||和&& 与 or和and的优先级不同
&& > || > and > or
$a = false || true; //true
$b = false or true; // false
四、示例
<?php /** * 下列程序中请写出打印输出的结果 * <?php * * $a = 0; * $b = 0; * * if ($a = 3 > 0 || $b = 3 > 0) * { * $a++; * $b++; * echo $a. "\n"; * echo $b. "\n"; * } */ $a = 0; $b = 0; if ($a = 3 > 0 || $b = 3 > 0) { /** * > 的优先级大于 || 大于 = * 因此可以认为是 * $a = ((3 > 0) || $b = 3 > 0) * => $a = (true || $b = 3 > 0) * 由于逻辑或短路作用,b 不再执行 * 因此:$a = true, b = 0 * 由于布尔值递增和递减都不影响还是true,而打印echo时,true底层转为1 * 因此最终echo a 和 b,都是1 */ $a++; $b++; echo $a. "\n"; echo $b. "\n"; }
相关推荐:
以上是php运算符集锦的详细内容。更多信息请关注PHP中文网其他相关文章!