一月
20
字符串能和数字比较大小吗?它们是否“相等”呢?你肯定会回答“不相等”。理论上是这样的,但是在PHP程序中,你可能会发现结果并不是你想像的那样!
不信你测试一下这段代码的结果:
<?php
if("A"==0) echo 'YES';
else echo 'NO';
?>
if("A"==0) echo 'YES';
else echo 'NO';
?>
结果是“YES”!对PHP不熟悉的人在写程序时如果用数字和字符串比较,往往会因为这样而出错。
为什么呢?PHP不是在运算时能把字符串转换为数值的吗?但是规则是:如果包括“.”,“e”或“E”其中任何一个字符的话,字符串被当作 float 来求值。否则就被当作整数。该值由字符串最前面的部分决定。如果字符串以合法的数字数据开始,就用该数字作为其值,否则其值为 0(零)。
所以“A”与 0 比较是真,“1a”与 1 比较也是真的!如果真的要用数字与字符串比较的话可以用“===”和“!==”,因为这是比较数据类型的,字符串和数字比较结果肯定是假了。
还不懂,哎哎哎!~