乳清的评价是真的吗?
<?php
$val2=0;
//outputs that is an error123
if($val2=='error123'){
echo 'that is an error123<br />';
}else{
echo 'that is not an error123<br />';
}
答案 0 :(得分:13)
您将字符串与整数进行比较。为了进行比较,首先将字符串转换为整数。当'error123'
转换为整数时,它变为0。
echo intval("error123");
结果:
0
在PHP手册中,此行为有an explanation。
如果您将数字与字符串进行比较或比较涉及数字字符串,则每个字符串都会转换为数字,并且数字会进行比较。
有一个快速参考页PHP type comparison tables,可以显示各种比较的结果。请参阅表“与==的松散比较”。关于这个问题的有趣部分是0 == "php"
显示为TRUE。
type juggling上还有一个页面。该页面上的user comment几乎提供了与此完全相同的示例。
如果您不希望类型杂耍使用===
而不是==
。
答案 1 :(得分:3)
尝试一下:$val2==='error123'
这将评估值和变量的类型。更多信息:
http://us.php.net/manual/en/language.operators.comparison.php