为什么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)的话,程序会报错(赋值语句等号前面必须为变量,语法错误)。
当然这只是一个习惯问题,并不强制大家使用,或许你有更好的方法,写这篇博文只是想告诉大家这个习惯怎么来的。写自己的代码,让无聊的人争议去吧!

Be the First to comment.

猜你喜欢

转载自blog.csdn.net/wccczxm/article/details/89379134