[PHP]if文がfalseと満たされる条件は?(“0.0″はtrue?、それともfalse?)


PHPにてif文がfalseと満たされる条件は、下記値が条件式に書かれた場合です。

false
NULL
整数の0
浮動小数点の0.0
空の文字列「""」
文字列"0"
要素が0の配列
プロパティとメソッドをもたないオブジェクト




ここで、注意が必要となる点は、文字列”0.0″は、falseではないということです。
たとえば下記のコードは、trueとみなされます。

if ( "0.0" ) {
	echo "条件はtrueです\n";
} else {
	echo "条件はfalseです\n";
}



条件はtrueです


ただし、浮動小数点の0.0はfalseなので、下記のように明示的なキャストを行うと結果はfalseになります。

if ( (double)"0.0" ) {
	echo "条件はtrueです\n";
} else {
	echo "条件はfalseです\n";
}



条件はfalseです


この点は勘違いしやすいので気を付ける必要があります。

関連記事

コメントを残す

メールアドレスが公開されることはありません。