本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,若有侵权请联系我进行删除,email:guoyugygy@163.comphp
在面试中,考官每每喜欢基础扎实的面试者,而运算符相关的考点,每每是你们容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中运算符相关的注意点。面试
abc()和@abc()之间的区别。编程
答案:PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式以前,该表达式可能产生的任何错误信息都被忽略掉。使用方法以下:微信
<?php /** * Created by 冷月小白. * 微信公众号: 学长冷月 */ function abc() { echo 1 / 0; } abc(); //输出 Warning: Division by zero function abc() { echo 1 / 0; } @abc(); //输出 INF ?>
本考点主要是考察面试者对于php的运算符中的错误控制符@的认识,以及对于其衍生出来相关运算符的考点,各位小伙伴只须要把本博文的知识充分理解,就能驾轻就熟的解决这类问题。下面冷月为你们展开讲解:学习
运算符的优先级
在php的运算符种类、数量都不少,冷月整理出来了面试中常考的几个为你们详细讲解:
递增/递减 > 算术运算符 > 数值大小比较 > 逻辑与 > 逻辑或 > 三目运算符 > 赋值运算符code
i++ 或 ++i
+ - * / %
> >= < <= ==
&&
||
:?
a = 10
冷月建议在平时的编程过程当中,各位小伙伴应该养成用()将表达式括住的习惯,这样能够避免犯错误。可是,在面试中,每每就是没有()的面试题,你们也要多注意。blog
比较运算符资源
理解==和===
的区别:
==
:数值相等就返回true,
===
:数值相等和数据类型相等才返回true。get
其中返回FALSE的7种状况也是常考点!
不清楚数据类型和FALSE的7种状况的小伙伴,能够学习一下冷月在另外一篇博文中介绍的知识-《php面试笔记(2)-php基础知识-常量和数据类型》或者关注冷月的微信公众号:学长冷月。回复:php面试。冷月将整理好的资料发给您。博客
递增/递减运算符
其中,要注意的是递增/递减运算符对布尔值的影响。
NULL是最重要的一个点。
NULL-- : 无效果
NULL++:输出1
逻辑运算符及短路做用
x && y
的短路做用为:x为FALSE就直接返回FALSE,不执行y
x || y
的短路做用为:x为TRUE就直接返回TRUE,不执行y
<?php /** * Created by 冷月小白. * 微信公众号: 学长冷月 */ $a = 0; $b = 0; if ($a = 3 > 0 || $b = 3 > 0) { $a++; $b++; echo $a; //1 echo $b; //1 } ?>
答案: $a 和 $b 都返回1。
咱们来分析这段代码($a = 3 > 0 || $b = 3 > 0)
,根据上面对优先级的介绍,咱们已经知道了各种运算符的执行流程。首先是比较运算符3>0
返回true,而 根据逻辑或的短路做用,前面返回true则直接返回true,不执行后面的代码。 因此if的括号返回true,转而执行括号体的内容。
好了,今天和你们的分享就到这里了,你们必定要勤加练习,早日收获本身的offer!
欢迎关注个人公众号:学长冷月,得到独家整理的学习资源和平常干货推送。
若是您对个人专题内容感兴趣,也能够关注个人博客:guoyu7.com