"Notice:未定義の変数"、"Notice:未定義の index"、および "Notice:未定義のoffset"をPHPで使用
私は、PHPスクリプトを実行していますが、次のようなエラーが発生します。
Notice:Undefined variable: my_variable_name in C:wamp\mypath\index.php on line 10
Notice:Notice: Undefined index: my_index C:wamp_www\mypath\index.php on line 11
10行目と11行目はこのようになっています。
echo "My variable value is: " . $my_variable_name;
echo "My index value is: " . $my_array["my_index"];
これらのエラーメッセージにはどのような意味があるのでしょうか?
なぜ突然表示されるのでしょうか?私はこのスクリプトを何年も使っていましたが、何の問題もありませんでした。
どうしたら直せますか?
宜しくお願いします。
これは一般的な参考質問で、問題を何度も説明する代わりに、人々が重複してリンクするためのものです。この問題に関する実際の回答のほとんどが非常に具体的なものであるため、これが必要だと感じています。
関連するメタ議論:
- [What can be done about repetitive questions?][1]
- [「参考質問」は意味がありますか][2]
[1]: https://meta.stackexchange.com/questions/62258/what-can-be-done-about-repetitive-questions [2]: https://meta.stackexchange.com/questions/63762/do-reference-questions-make-sense
1118
3
これらをお試しください。
あるいは、手っ取り早い解決策として
セッションについての注意事項
セッションを使用する際には、セッションを使用するすべてのファイルの中に
session_start();
を配置する必要があります。http://php.net/manual/en/features.sessions.php
一般的には「悪いプログラム」が原因で、今も昔も間違いを犯す可能性があります。
1.誤りであれば、まず変数に適切な代入を行う: $varname=0; 2.もし、本当に時々しか定義されていないのであれば、使う前に
if (isset($varname))
とテストする。 3.綴りが間違っている場合は、それを修正する。 4.もしかしたら、PHP設定の警告を消してしまうかもしれません。これは、まだ何も割り当てられていない変数をテスト、評価、または印刷していることを意味します。 これは、タイプミスをしているか、その変数が最初に何かに初期化されているかどうかをチェックする必要があることを意味します。 あるパスでは設定されていても、別のパスでは設定されていない可能性があるので、ロジックパスを確認してください。