为什么IF语句判断相等(==)时,习惯把常量写前面

 最近在做一个项目, 看到有同事把我的if代码改掉了。如下:

if($x == 1){
}

改成

if(1 == $x){
}

个人感觉没啥区别,但是还是网上搜了一下,终于明白是为什么, 自己也经常遇见这样的额问题。

为什么要把1这个常量写前面呢?这跟x==1有什么区别?
这是一直以来的置疑,后来发现这不止是我一个人在置疑!其实关于这一点,前辈们已经争议了很多年。暂且不说怎么写好,我就说说当初这个习惯为什么会形成的吧。
如果我们写if($x==1),在写的过程中经常会不小心写成if($x=1),我想这点不用置疑了,大家肯定都犯过的错误。因为$x=1是个合法的赋值语句,程序运行中不会报错,简短的程序我们很容易发现这个错误,如果几万行代码的一个系统,那想找出这个错误是很难的。所以某些前辈就建议我们这样写:if(1==$x)。
首先,这样写会与赋值语句的书写形式区分开,降低出错的可能性;然后如果我们实在脑子短路写成if(1=$x)的话,程序会报错(赋值语句等号前面必须为变量,语法错误)。
当然这只是一个习惯问题,并不强制大家使用,或许你有更好的方法,写这篇博文只是想告诉大家这个习惯怎么来的。写自己的代码,让无聊的人争议去吧!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值