PHP の empty と isset の挙動について

Pocket

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 メソッドをご利用時は注意が必要です。

他者が書いたプログラムにひそんでいると一見わからないので、注意しましょう〜。

この記事を書いた人

さとう たけし

Java 技術者だったはずが、いつしかPHPの手先。CodeIgniterでの開発だったはずがWordPressばかりになってます。オリジナルテーブル駆使したりむちゃくちゃなことも対応してますのでヨロピク!

この記事が気に入ったら
いいね!しよう

最新の情報をお届けします