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

在很多程序中我们会发现这样的情况:

if(1 == $x){

….

}

为什么要把1这个常量写前面呢?这跟x==1有什么区别?

这是一直以来的置疑,后来发现这不止是我一个人在置疑!其实关于这一点,前辈们已经争议了很多年。暂且不说怎么写好,我就说说当初这个习惯为什么会形成的吧。

如果我们写if($x==1),在写的过程中经常会不小心写成if($x=1),我想这点不用置疑了,大家肯定都犯过的错误。因为$x=1是个合法的赋值语句,程序运行中不会报错,简短的程序我们很容易发现这个错误,如果几万行代码的一个系统,那想找出这个错误是很难的。所以某些前辈就建议我们这样写: if(1==$x)

首先,这样写会与赋值语句的书写形式区分开,降低出错的可能性;然后如果我们实在脑子短路写成if(1=$x)的话,程序会报错(赋值语句等号前面必须为变量,语法错误)。

当然这只是一个习惯问题,并不强制大家使用,或许你有更好的方法,写这篇博文只是想告诉大家这个习惯怎么来的。写自己的代码,让无聊的人争议去吧!


( ! ) Warning: Missing argument 1 for cwppos_show_review(), called in /data/www/enjoyphp/wp-content/themes/flat/content-single.php on line 29 and defined in /data/www/enjoyphp/wp-content/plugins/wp-product-review/includes/legacy.php on line 18
Call Stack
#TimeMemoryFunctionLocation
10.0001355192{main}( ).../index.php:0
20.0001355480require( '/data/www/enjoyphp/wp-blog-header.php' ).../index.php:17
31.189010197376require_once( '/data/www/enjoyphp/wp-includes/template-loader.php' ).../wp-blog-header.php:19
41.190410268520include( '/data/www/enjoyphp/wp-content/themes/flat/single.php' ).../template-loader.php:74
51.301910822000get_template_part( ).../single.php:5
61.301910822520locate_template( ).../general-template.php:167
71.301910822616load_template( ).../template.php:643
81.302010823000require( '/data/www/enjoyphp/wp-content/themes/flat/content-single.php' ).../template.php:686
91.311010807736cwppos_show_review( ).../content-single.php:29

1 评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注