在写程序的时候 做判断的时候 $a == 2 与 2 == $a 有何区别
程序员文章站
2022-04-11 11:05:35
...
在写程序的时候 做判断的时候 $a == 2 与 2 == $a 有何区别
回复内容:
在写程序的时候 做判断的时候 $a == 2 与 2 == $a 有何区别
对于能够在条件运算符中赋值的语言,把常量放置到比较运算符之前,可以避免漏写等号造成的问题。
也就是说,这样可以避免我们各种失误造成的把$a == 2
写成$a = 2
的问题。
这种技巧在php中用处不是很大,但是在java web中用处比较大,比如判断用户提交的某个参数a是否等于字符串"abc"
用 "abc".equals(a)
就比a.equals("abc")
好,因为a可能是空的,后者就会报错,而前者就能给出正确结果。
2==$a 没见过这样的写法,如果可以,请赐教?
没太大作用。
主要目的是为了防止判断的时候少些一个等于号。
假设$a=1;
2==$a;//可以执行,值为false
2=$a;//保存
$a==2;//可以执行,值为false
$a=2;//可以执行,值为true,因为是赋值语句
$a == 2 少些一个等号为赋值操作,编译器不会提示报错
2 == $a 少些一个等号编译器会提示报错
前提是放到if里面做比较操作的时候
没有区别
但是,$a == 2 在语感上来说更容易让人接受一点