PHPを使っています。変数を初期化すべきかを教えてください。Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。登録してこのコミュニティに参加するどなたでも質問していただけますどなたでも回答していただけます最もよい回答には賛成票が入り、最上位に上がりますホーム質問タグユーザーPHPを使っています。変数を初期化すべきかを教えてください。6,323件3PHPの変数の初期化はどのタイミングについて教えてください。初期化されていない変数の値は状況に応じたその型のデフォルト値が入るようです。変数を初期化する必要はありません。」とありましたが「初期化することはとてもいいことです」とも記述されていました。そこでお伺いしたいのですが一般的に初期化は明示的に行う必要はありますでしょうか?また、初期化する場合PHPの初期化はどのタイミングで行うのでしょうか?どういう風に気を付けてコーディングしているかだけでも構いませんので教えてください。票3初期化されていない変数の値は状況に応じたその型のデフォルト値が入るようです。配列:空の配列が初期化で良いのでは?宣言時に、格納される値が設定できるのであれば、そのタイミングで設定すれば良し。なければ、変数を使う前に、デフォルト値のままか?って判定すれば良いだけのように思いますが。意図した有効値が入っているか判断できること変数の値をコントロールして設定・取得できることだと思います。1はそのままですが、integerとかの『0』は普通の値なので、『0』が入る事があり得る変数でそのままにしておくと、使いたいタイミングで初期値の『0』なのか、意図して設定した『0』なのか分かりませんよね?そういう場合を考慮して、無効な値を自分で考えて初期化してやる必要があります。※その変数が取り得ない値を無効値と自分で決めてやります。身長や年齢とかなら負値とかですね。2は変数が生まれて消えるまでをコントロールできるように作っているか?ってことです。globalな変数を様々な関数の中で設定したり、使用したりして、どのタイミングで設定されているかとか、このタイミングでこの変数使って良いのかとかを判断できなくなるのが典型的な悪い作りですね。思いつくのはこんな感じかな?と思います。初期化を口うるさく言われるのは、Cのポインタの使い方が一番影響してるんではないかと思いますよ。その変数、本当に未初期化でしょうか例えば、PHPで別ファイルをincludeする場合、includeするファイルの中で定義された変数も現在のスコープに取り込まれます。ひとつの例として、for文を挙げましょう。空の文字列、配列なら空の配列となります。相互に自動的に変換されます。未初期化の変数を参照した時点ではなく、型変換の必要が生じたときに初めて、いずれかのデフォルト値に変換されることになります。特定の型を期待しているとはまります。文字列に変換したら空文字列ですよね。0;insert($foo);insert($undef);データベースにもNULLという概念があります。NULLとして扱われたりします(様々な要因で変化しますが)。Manualその変数や値がどこでどのように使われるのか把握できていれば大丈夫とはいえ、上記のような心配を抱えるぐらいなら明示的に初期値を指定したほうがまだ安心できます。確認できますが、豚吐露さんも書かれているように無効値を決めて初期化しておくのはいい方法だと思います。抱えることになります。レベルのエラーが発生します。初期化されていない配列に要素を追加する場合はエラーにはなりません。