PHP中使用if的时候为什么建议将常量放在前面?
2024-09-08 08:14:28
在某些框架或者高手写的代码中,我们会发现有不少人喜欢在进行条件判断的时候将常量写在前面,比如:
if(1 == $a){
echo 111;
}
这样做有什么好处呢?我们假设一个不小心的粗心大意,少写了一个=号,会有什么结果。
$a = 'a';
if($a = 'b'){
echo 111;
}
echo $a;
没错,111输出了,$a的值也变成了b。少了一个等号,就变成了赋值操作,这样的操作会先给$a赋值,然后根据$a的值进行判断。如果$a = '',就不会输出111,但是$a的值还是会变成''。
划重点:这样的写法php是不会报错的,这也是有可能造成BUG的情况。
那么反过来呢?
$a = 'a';
if('b' = $a){
echo 111;
}
首先,大部分的IDE都会报语法错误,也就是直接划红线了。常量是不能被赋值修改的,不管是数字、字符串还是系统或者我们自己已经定义了的常量。
其次,这种情况下你要是还发现不了这里有问题的话也没关系,运行起来也会报错的,代码是无法继续向下运行的。
当然,这只是一个小技巧,而且最主要的目的是为了应对粗心带来的问题。所以并不是强制的规范,有些公司可能会在代码审计或者规范文档中强调这样写法,当然,最好的还是我们要杜绝这种粗心带来的错误。
===============
关注公众号:【硬核项目经理】获取最新文章
添加微信/QQ好友:【xiaoyuezigonggong/149844827】免费得PHP、项目管理学习资料
知乎、公众号、抖音、头条搜索【硬核项目经理】
B站ID:482780532
最新文章
- How To: Samba4 AD PDC + Windows XP, Vista and 7
- maven 简介
- C语言学习003:Hello 指针
- Scrum Meeting---Nine(2015-11-4)
- jq:get获取json数据并以表格形式生成到页面
- 常用的CSS清除浮动的方法优缺点分析(个人学习笔记)
- 正则RegEXp
- 防暴力破解 Fail2Ban之python
- 【原】javascript笔记之this用法
- 重新复习~ 为了重新找工作 - >; XMLHttpRequest2.0 Jsonp nodeType 节点 webpack基本搭建 闭包的一句话总结
- 暑期OI大电影——不看后悔整个OI生涯!
- HTTP协议学习笔记(一)
- ml基本问题
- python小数据池,代码块知识
- [转]JDK自带工具之问题排查场景示例
- [原创]WebScarab工具介绍
- Java如何格式化24小时格式的时间?
- 理解js事件循环(event loop)
- bzoj 3119: Book
- vue Map 渲染DOM