为什么评价为真

时间:2010-05-24 23:25:13

标签: php

乳清的评价是真的吗?

<?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 />';
}  

2 个答案:

答案 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