プログラミングゆるめモ

プログラミングに関することをゆるくメモしてます

PHP

[PHP]配列が空であるかの判断方法 count() / is_array()

 要点:count($pram)==1 でも、要素数が1個の配列ではなく・・・空の変数であることがある。

配列の要素数を求める関数として、 count() があります。
count() は、配列の要素数を返します。また、初期化されていない変数には 0 を返しますし、空の配列として初期化されている場合も 0 を返します。
しかし、配列以外で初期化されている場合に、変数が空だった場合には、1 を返します。
WordPressのショートコードの引数なしでの呼び出しでは、ショートコード側の count($引数変数) は 1 になります。
つまり、このような場合は配列の要素数が 1 個なのか、それとも配列以外で初期化されており変数が空なのかの区別がつきません。
 このような場合には、事前にその変数が配列であるかの確認が必要になります。
変数が配列かの確認は
is_array() で行います。
is_array() が TRUE で count() が 1 なら 1 個の要素を持った配列です。
is_array() で FALSE で count() が 1 なら 配列以外の変数
ということになります。

-PHP