php面试笔记(3)-php基础知识-运算符
本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com
在面试中,考官往往喜欢基础扎实的面试者,而运算符相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中运算符相关的注意点。
回顾真题
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的运算符种类、数量都很多,冷月整理出来了面试中常考的几个为大家详细讲解:
递增/递减 > 算术运算符 > 数值大小比较 > 逻辑与 > 逻辑或 > 三目运算符 > 赋值运算符
- 递增/递减
i++ 或 ++i
- 算术运算符
+ - * / %
- 数值大小比较
> >= < <= ==
- 逻辑与
&&
- 逻辑或
||
- 三目运算符
:?
- 赋值运算符
a = 10
冷月建议在平时的编程过程中,各位小伙伴应该养成用()将表达式括住的习惯,这样可以避免犯错误。但是,在面试中,往往就是没有()的面试题,大家也要多注意。
比较运算符
理解==和===
的区别:
==
:数值相等就返回true,
===
:数值相等和数据类型相等才返回true。
其中返回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
php面试笔记(3)-php基础知识-运算符的更多相关文章
- C语言基础知识-运算符与表达式
C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...
- Java 面试知识点解析(一)——基础知识篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- 【Java面试】1、基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充. 源码分享:https: ...
- ios开发学习笔记001-C语言基础知识
先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...
- iOS 阶段学习第11天笔记(OC基础知识)
iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import 用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...
- Spring笔记01(基础知识)
1.基础知识 01.Spring:轻量级Java EE开源框架,它是由Rod Johnson为了解决企业应用程序开发的复杂性而创建. 02.目标:实现一个全方位的整合框架,实现“一站式”的企业应用开发 ...
- [terry笔记]data guard基础知识
如下介绍了data guard的基础知识,整理自网络: Data Gurad 通过冗余数据来提供数据保护,Data Gurad 通过日志同步机制保证冗余数据和主数据之前的同步,这种同步可以是实时,延时 ...
- Java 8实战之读书笔记二:基础知识
好记性不如烂笔头,整理一些个人觉得比较重要的东西. 一.基础知识 第1章 为什么要关心Java 8 Java 8提供了一个新的API(称为"流", Stream),它支持许多处理数 ...
- MySQL必知必会笔记——查询的基础知识
查询基础知识 第七章 数据过滤 组合where子句 MySQL允许给出多个WHERE子句.这些子 句可以两种方式使用:以AND子句的方式或OR子句的方式使用. AND操作符 可使用AND操作符给WHE ...
随机推荐
- OffSet和Utc
DateTime dtt = System.DateTime.Now ;//utcnow是格林威治的时间,与北京时间-8 strin(dtt); public static string strin( ...
- git查看远程仓库和本地的区别
git diff 你可以用 git diff 来比较项目中任意两个版本的差异. $ git diff master..test 上面这条命令只显示两个分支间的差异,如果你想找出 master , te ...
- WebGL简易教程(十五):加载gltf模型
目录 1. 概述 2. 实例 2.1. 数据 2.2. 程序 2.2.1. 文件读取 2.2.2. glTF格式解析 2.2.3. 初始化顶点缓冲区 2.2.4. 其他 3. 结果 4. 参考 5. ...
- 如何修改netbeans的系统字体?
1. 打开/etc/netbeans.config 2. 找到netbeans_default_options 3. 追加 --fontsize 12
- newSQL 到底是什么?
数据库发展至今已经有3代了: SQL,传统关系型数据库,例如 MySQL noSQL,例如 MongoDB newSQL SQL 的问题 互联网在本世纪初开始迅速发展,互联网应用的用户规模.数据量都越 ...
- Java入门 - 语言基础 - 09.循环结构
原文地址:http://www.work100.net/training/java-loop.html 更多教程:光束云 - 免费课程 循环结构 序号 文内章节 视频 1 概述 2 while循环 3 ...
- 代码审计之CVE-2018-7600-Drupal远程代码执行漏洞-Render API
今天学习一下Drupal的另一个漏洞,由于渲染数组不当造成的漏洞 poc: url:http://localhost/drupal-8.5.0/user/register?element_parent ...
- 玩转Django2.0---Django笔记建站基础十(二)(常用的Web应用程序)
10.3 CSRF防护 CSRF(跨站请求伪造)也成为One Click Attack或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用,窃取网站的用户信息来制作 ...
- 1114 记录一点点吧 RP Axure
- node js 爬啊爬 记录 向 Scott 致敬 不要问为什么
更优雅的异步编程: 定向爬取 :http://www.010xww.com/list/travel.htm 上代码: 打印一下http . 嗯 http 模块加载没问题 获取一个 文章列表: 终于把人 ...