むねひろ@プログラマープログラマーの技術や経験の暴露ブログです。何か聞きたいことがあれば遠慮なくご連絡ください。munehiro配列の要素が空かどうか判定するのはempty?isset?PHPの基礎ツイートシェアはてブLINEPocketDBなどから配列を取得したとき、配列の要素が空かどうか判断する場面があるかと思います。いったときはempty()を使うのか?isset()を使うのか?他に手段があるのか?ぶっちゃけ答えはどれでもいいと思います。僕ならempty()を使います。実際に色々な値を試してみようと思います。配列の要素が空かどうか判定するのはempty()?isset()?判定する条件に使う関数も大事ですが、配列と思われる変数の実際の値も重要です。空の配列か中身のある配列かなんてのは王道です。して何かしら配列を返してくれる関数の実行結果にNULLが想定される場合もあります。配列に1つだけ要素がセットされていて、その要素の値がNULLの場合は?これはまあ大丈夫でしょう(笑)色々実験してみます。empty()を使って配列の空判定empty()は配列が空かを判定するものではなく、引数にセットした変数が空かどうかを判定します。配列の場合はどうか?実際に動かしてみました。/>";}空の配列を作って判定した結果は予想通り「配列は空」でした。他にも色々パターンを作って実行してみました。/>";}上記コードの実行結果が以下の通りです。通常パターンは当然空では無い判定でしょうが、配列の要素に空文字やNULLを設定した場合も空では無い状態ですね。それも当然と言えば当然ですが、実際にやってみて結果を得ると安心です。それと変数にnullがセットされているパターンはもはや配列では無いですが、結果としては想定通りです。isset()を使って配列の空判定ではisset()はどうでしょう?そもそもisset()は「セットされてる?」という判定になります。空の判定の逆なイメージですが結果はどうでしょう?empty()と同じ内容の判定を行ってみました。/>";}結果は次のようになります。いう変数に対し、空であろうが配列がセットされているでしょう!という結果なんですね。それ以外の結果は同じですが、一番大事なものがなんか違いましたね。冒頭で「どっちでもいいw」とか書いてて恥ずかしい。配列が空かどうかを判定するにはisset()は不向きですね。他にはどんな方法があるの?他にはどんな手段があるでしょう?似たようなのでis_null()というNULLかどうかを判定する関数もあります。あとは、変数を直接条件文にセットしPHPの機能にお任せする方法がありますね。どちらも同じように試してみました。is_null()ではどうか?これはempty()同様、値が無い場合がtrueになる関数です。この関数を使って上でやったことと同様に配列の判定をしてみました。/>";}結果は次の通りです。array())の場合が「配列は空ではない」になってしまいますね。NULLかどうかの判定だからでしょうか。確かに空の配列ではあるが、NULLではないです。isset()同様、配列の空判定には不向きですね。条件文に変数だけセットする場合はどうか?これはもっと専門用語があるんでしょうか?笑if文の条件に変数をセットしたとき、値があればtrueで無ければfalseになるものです。この方法でも同様の実験をしてみました。/>";}結果は次の通りです。配列は空ではない配列は空ではない配列は空ではない配列は空ぬ??empty()同様欲しい結果が得られております!この記事を書くための実験でしたが、僕にとっても勉強になりました。個人的にこの条件文の書き方はあまり好きではありません。僕はempty()を使おうかと思います。まとめ配列が空かどうかを判定するのはempty()がよさそう。isset()やis_null()を使うと空の配列の場合に「空で無い」と判定される。条件文に変数を直接セットする書き方でもempty()同様の結果が得られた。個人的にはemoty()を使うことをおすすめする。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。PHPの配列の要素をコピーする方法って?PHPの連想配列のキーと値をforeachでループしながら取得する方法RECOMMENDこちらの記事も人気です。PHP2018.10.15PHPでフォーマットを指定して現在の日付を取得したり、加算や比較など操作...PHP2018.12.29PHPの文字列の改行コードとHTMLへ出力時のnl2br関数での置換PHP2019.9.19PHPのpathinfo()で拡張子やファイル名を取得する方法PHP2018.9.26PHPの関数の使い方は値渡しや参照渡しの引数が肝PHP2018.10.27PHPでDBに接続してデータの取得や更新など操作をする方法PHP2019.2.10PHP+jQueryで画面遷移しないでメール送信する方法PHP2019.1.30別のPHPファイルを読み込む方法っていくつかあるけど違いは?PHP2019.1.10PHP配列の中から要素を検索するarray_searchとarray_k...むねひろ現在36歳。プログラマー歴16年。高校卒業後は調理師見習いをしていたけど、不況で先が不安になり離職。その後上京しハローワークの紹介でプログラマーに。分からないことだらけで辛い日々だったけど、3年頑張ったら色々見えてきてフリーランスに。面白そうなシステム開発をもっとしたい。