IF语句总是在PHP中执行

时间:2012-09-29 11:08:24

标签: php if-statement

  

可能重复:
  Why does PHP consider 0 to be equal to a string?
  php string comparasion to 0 integer returns true?

似乎在PHP中有一个if语句,其中函数some_function()返回零

<?php
if( some_function() == "whatever_you_want" ) { ... }

该语句将始终执行

<?php
echo some_function() == "whatever_you_want";
然后

为TRUE。

为什么用这种反直觉的方式表现PHP?

1 个答案:

答案 0 :(得分:1)

这是defined behavior of PHP when you compare a number value and a string value

  

如果将数字与字符串进行比较或比较涉及数字字符串,则每个字符串为converted to a number,并且数字执行比较。这些规则也适用于switch语句。比较为===!==时,不会进行类型转换,因为这涉及比较类型和值。

===!==使用严格的值比较,您就会得到预期的结果。