私は、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
これらをお試しください。
Q1: この通知は、現在のスコープで$varnameが定義されていないことを意味しています。 スクリプトの現在のスコープで定義されていないということです。 スクリプトの現在のスコープで定義されていないことを意味します。
Q2: 疑わしい変数を使用する前に isset(), empty() の条件を使うとうまくいきます。
// recommended solution for recent PHP versions
$user_name = $_SESSION['user_name'] ?? '';
// pre-7 PHP versions
$user_name = '';
if (!empty($_SESSION['user_name'])) {
$user_name = $_SESSION['user_name'];
}
あるいは、手っ取り早い解決策として
// not the best solution, but works
// in your php setting use, it helps hiding site wide notices
error_reporting(E_ALL ^ E_NOTICE);
セッションについての注意事項
セッションを使用する際には、セッションを使用するすべてのファイルの中に session_start();
を配置する必要があります。