empty() 関数は、文字列が空かどうかを判断するために使用されます。
変数が 0、null、''、false である限り、empty() は true と判断されます。
$num1=''; $num2=0; echo $num1==$num2; echo '<br/>'; echo $num1===$num2 ? '1' : '0';
その理由は、PHPの変数はC言語の構造体に空の文字列、NULL、falseはすべて値0で格納されており、この構造体にはzend_uchartype; のようなメンバー変数。変数の型を保存するために使用されます。空の文字列の型は string、NULL の型は NULL、false はブール値です。 === 演算子は、値だけでなく型も比較します。
次のように空の文字列と 0 を判定します:
$num1=''; $num2=0; if(empty($num1) && $num1===''){ echo "true"; } if(empty($num2) && $num2===0){ echo 'true'; }
以上、PHPにおけるnull、0、falseの違いを、falseとnullの内容も含めて紹介しましたので、PHPチュートリアルに興味のある方の参考になれば幸いです。