1.10.4 比较操作符
比较操作符用来比较两个值。比较操作符表达式根据比较结果返回逻辑值:true或false。
1.等于操作符
相等的比较操作符==(两个等于号)允许测试两个值是否相等。例如,可以使用如下的表达式:
$a==$b
来测试$a和$b中的值是否相等。如果相等,这个表达式返回的结果为true,如果不等,这个表达式返回的结果为false。
这个操作符很可能会与赋值操作符“=”混淆。同时,即使出现混淆,程序也不会报错,但是通常不会返回你所希望的结果。一般地说,非0数值都是true,0值为false。假设按如下所示的语句初始化两个变量:
$a=5;
$b=7;
如果测试的是$a=$b,结果会是true。为什么呢?表达式$a=$b的值就是赋给左边的值,这个值为7。这是一个非0值,所以表达式的值是true。如果希望测试$a==$b,它的结果却是false。这样,在编码中,就遇到了非常难发现的逻辑错误。通常,应该仔细检查这两个操作符的使用,确保所使用的操作符就是你要用的。
使用赋值操作符而不是等于比较操作符是一个很容易犯的错误,它可能在编程工作中多次出现。
2.其他比较操作符
PHP还支持其他一些比较操作符。表1-3给出了所有比较操作符。需要注意的一点是,恒等操作符===(三个等于号)。只有当恒等操作符两边的操作数相等并且具有相同的数据类型时,其返回值才为true。例如,0=='0'将为true,但是0==='0'就不是true,因为左边的0是一个整数,而另一个0则是一个字符串。