运算符和优先级

2018-02-24 10:03:17来源:https://www.jianshu.com/p/97a7642df0a1作者:Coco__Monkey人点击

分享






运算符优先级
题:foo()@foo() 的区别?
考点:
运算符中的错误控制符@的使用和作用;
所有PHP运算符的考点;

运算符的优先级;
比较运算符;
递增减运算符;
逻辑运算符;

运算符中的错误控制符@:
PHP中支持一个错误控制符@,当将其放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都会被忽略掉;
运算符的优先级: 参考手册
常用的优先级考点:




递增减 > ! > 算数运算符 > 大小比较 > (不)相等比较 > 引用 > 位运算符(^) > 位运算符(|) > 逻辑与 > 逻辑或 > 三目运算 > 赋值 > and > xor > or


括号的使用可以增加代码的可读性,推荐使用!
比较运算符:
== 和 === 的区别:
===是恒等计算符 同时检查表达式的值与类型
==是比较运算符号 不会检查条件式的表达式的类型
注意: 等值判断(false的七种情况):false的七种情况都是等值的(==);
递增减运算符:
递增减运算符不会影响布尔值;true++, true-- 都还是true;false++,false--都还是false;
递减都NULL没有效果;递增NULL会变成 1;
递增和递减在前是先运算后赋值返回,如果在后就先赋值返回,后运算;

逻辑运算符:
短路作用:
|| 和 && 与 and 和 or 的优先级不同;
示例:
//短路作用
$a = true || $b == 3; // $b 不会执行;
$b = false && $a == 1; // $b 为false 此表达式不会执行
//优先级问题:
$a = false || true; // $a = true;
$b = false or true; // $b = false,整体是true;

解题方法:


重点记忆递增减运算符的运算规则,逻辑运算符的短路效果;遇到逻辑运算符要多考虑优先级的问题;
优先级的问题放在逻辑运算符中测试的!

例题:写出下列程序打印输出的结果:


$a = 0;
$b = 0;
if($a = 3 > 0 || $b = 3 > 0){
$a++;
$b++;
echo $a; //$a = 1 (true);
echo $b; //$b = 1;
}







最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台