PHP 判斷式 0 == 'string' 恆為 true - 2012

簡單的一個判斷式, 如下述:

<?php
$types = 0;
if ($types == 'abc')
    echo 'a';
else
    echo 'b';
?>

答案是印出 a (預期應該要印出 b, 結果卻印出 a)

  • 註1: 這種情況平常比較容易出現在會給預設值的地方, ex: function abc($input, $types = 0) {...}
  • 註2: 目前確定 PHP 5.3, 5.4 都是這樣子的狀況, 看官方說明這個並不算是 Bug, 應該會一直持續下去.

閱讀全文〈PHP 判斷式 0 == 'string' 恆為 true - 2012〉