PHPで配列を初期化する2つの方法と1つのエラー例

  • このエントリーをはてなブックマークに追加
  • Pocket

スポンサードリンク

PHPは型を意識しなくても動作することが多いため、初期化の必要性を感じることも少ないかと思います。

ただ同じ配列を使い回す場合は思わぬバグの原因にもなるので、必ず初期化をするクセをつけたいですね。

 

array関数で初期化

とても簡単ですね。

以下のように値を持った配列を初期化できます。

ちなみにunset()を使っちゃうと配列ごとなくなるので、使わないようにしましょう。

[]で初期化(PHP5.4以降)

[]を使った初期化はPHP5.4以降でしか動作しません。

array()同様初期化してくれます。

配列を代入する

同じ配列を使い回している場合は、わざわざ初期化しなくても代入することで上書きしてくれます。

array関数で代入する

京都 神戸

[]で代入する(PHP5.4以降)

[]を使った配列処理はPHP5.4以降でしか動作しません。

京都 神戸

 

上書きしてくれましたね。

ただPHPのマニュアルにも以下のように記述があります。

PHP では変数を初期化する必要はありませんが、そのようにするのはとてもよいことです。

初期化をしないと思わぬバグを誘発するため、きちんと初期化を心がけたいものですね。

初期化しなかったことによるエラー例

以前ブログサイトのプログラムを作成していた際、データベースに格納していた値を引っ張ってきて、投稿画面でカテゴリーのプルダウンメニューを作成していました。

sql文で引っ張ってきた値を、$categorysという変数にarray_push()で格納しようとしたのですが、初期化していなかったため以下のようなエラーが出ました。

Warning: array_push() expects parameter 1 to be array, null given in・・・

「あなた、配列じゃないじゃない!」と怒られていますね。

このエラーが配列の値の数だけズラズラと出て来ました。

そこで以下のようにその変数を初期化してあげると、このエラーは消えてくれました。

これは「配列だよ!」という宣言として当時は捉えていましたが、新しい配列を作るという意味もあるんですね。

includeファイルに影響を与えたり、セキュリティ上問題となるケースもあるため、初期化はしっかりやっていきましょう。

スポンサードリンク

  • このエントリーをはてなブックマークに追加
  • Pocket

コメント

  1. yh より:

    city の複数は cities かと。

    1. nir87 より:

      確かにそのとおりですね、修正させていただきました。
      ご指摘ありがとうございます。

コメントを残す

*