运算符和优先级

运算符优先级

题:foo()@foo() 的区别?

考点:
  • 运算符中的错误控制符@的使用和作用;
  • 所有PHP运算符的考点;
  1. 运算符的优先级;
  2. 比较运算符;
  3. 递增减运算符;
  4. 逻辑运算符;

运算符中的错误控制符@:

PHP中支持一个错误控制符@,当将其放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都会被忽略掉;

运算符的优先级: 参考手册

常用的优先级考点:

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

括号的使用可以增加代码的可读性,推荐使用!


比较运算符:

== 和 === 的区别:
  • ===是恒等计算符 同时检查表达式的值与类型
  • ==是比较运算符号 不会检查条件式的表达式的类型
注意: 等值判断(false的七种情况):false的七种情况都是等值的(==);

递增减运算符:

  • 递增减运算符不会影响布尔值;true++, true-- 都还是true;false++,false--都还是false;
  • 递减都NULL没有效果;递增NULL会变成 1;
  • 递增和递减在前是先运算后赋值返回,如果在后就先赋值返回,后运算;

逻辑运算符:

  1. 短路作用:
  2. || 和 && 与 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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容