==字符串运算符

时间:2015-03-09 05:03:01

标签: php string operators

为什么即使变量不相等,此代码也会回显Yes.

$a = '0e462097431906509019562988736854';
$b = '0e830400451993494058024219903391';

if( $a == $b ) echo 'Yes.';
else echo 'No!';

4 个答案:

答案 0 :(得分:8)

两者都将被视为数字,PHP之前的数量存储有限制。 所以检查一下。

尝试使用'==='。它也会检查类型,因此不会转换为数字。

请参阅此question及其答案。

答案 1 :(得分:2)

您需要strcmp,而不是相等运算符。

答案 2 :(得分:2)

尝试使用strcmp函数:

if(int strcmp ($a,$b)===0) echo 'Yes.';
else echo 'No!';

答案 3 :(得分:1)

尝试使用'==='代替'=='。

'=='有一个“较弱”的比较,因为它没有检查类型。

另一方面,

'==='也检查类型,当你比较两件事时,通常更好的做法是。