php で 変数の値が 0 (int) の場合に null じゃないかどうか調べたい・・・結果
※ついでに is_null
<?php
$a = 0;
echo " isset( $a ) : ";
echo ( isset( $a ) ? "YES":"NO" );
echo "
";
echo " ! empty( $a ) :";
echo ( ! empty( $a ) ? "YES":"NO" );
echo "
";
echo " ! is_null( $a ) : ";
echo ( ! is_null( $a ) ? "YES" : "NO" );
echo "
";
echo " isset( $b ) : ";
echo ( isset( $b ) ? "YES":"NO" );
echo "
";
echo " ! empty( $b ) :";
echo ( ! empty( $b ) ? "YES":"NO" );
echo "
";
echo " ! is_null( $b ) : ";
echo ( ! is_null( $b ) ? "YES" : "NO" );
この結果・・・
isset( 0 ) : YES
! empty( 0 ) :NO
! is_null( 0 ) : YES
isset( 1 ) : YES
! empty( 1 ) :YES
! is_null( 1 ) : YES
まとめ
$a が 0 の時 isset 、 empty 、 is_null はこう働く・・・
変数の値 | 関数 | 結果 |
---|---|---|
0 | isset | YES |
0 | ! empty | NO |
0 | ! is_null | YES |
1 | isset | YES |
1 | ! empty | YES |
1 | ! is_null | YES |
0 を数値と判定し 0 であることに意味がある場合は isset を使うべし!
0 を 0 と判定しない empty メソッドをご利用時は注意が必要です。
他者が書いたプログラムにひそんでいると一見わからないので、注意しましょう〜。