「2章PHP言語の基本 2.2データ型」からのメモ。
falseと判定されるもの
==を使ってfalseと判定されるものをまとめてみました。
<?php if(0 == false){ echo "0 == false\n"; } if(0.0 == false){ echo "0.0 == false\n"; } if("" == false){ echo "\"\" == false\n"; } if("0" == false){ echo "\"0\" == false\n"; } $empty_array = array(); if($empty_array == false){ echo "empty_array == false\n";} if(NULL == false){ echo "NULL == false\n";} ?>
0 == false 0.0 == false "" == false "0" == false empty_array == false NULL == false
rubyではnilとfalse以外はすべてtrueと判定されるので、間違わないように注意が必要です。
class FalseClass
false は nil オブジェクトとともに偽を表し、その他の全てのオブジェクトは真です。
それと本には「メソッドやプロパティをいっさい持たない空のオブジェクト」もfalseと判定されると書いてあったのですが、PHP5.3.2ではそうではないみたいです。
<?php class EmptyClass { } $empty_obj = new EmptyClass; if($empty_obj == false){ echo "empty_obj == false\n"; } else{ echo "empty_obj != false\n"; } ?>
empty_obj != false
他の言語と比較しようかと思いましたが、ちょっと面倒だから今回はスルーします。