PHP エラー「未定義定数の使用」について理解する
PHP は、「通知: 未定義定数の使用」という形式でエラーをログに記録することがよくあります。 。このエラーは、PHP が定数定義の代わりに文字列リテラルを検出した場合に発生します。このような場合、PHP は文字列が定数であると想定し、対応する定義を検索しようとします。
たとえば、次のコード スニペットを考えてみましょう。
$department = mysql_real_escape_string($_POST[department]); $name = mysql_real_escape_string($_POST[name]); $email = mysql_real_escape_string($_POST[email]); $message = mysql_real_escape_string($_POST[message]);
このコードは次のコードを生成します。エラー:
PHP Notice: Use of undefined constant department - assumed 'department' (line 5) PHP Notice: Use of undefined constant name - assumed 'name' (line 6) PHP Notice: Use of undefined constant email - assumed 'email' (line 7) PHP Notice: Use of undefined constant message - assumed 'message' (line 8)
これらのエラーは、PHP が文字列リテラル「部門」、「名前」を解釈しようとしていることを示します。 「email」と「message」を定数として使用します。ただし、そのような定数が定義されていないため、PHP はそれらが文字列リテラルであると想定し、「未定義の定数の使用」というエラー メッセージを発行します。
エラーの解決
このエラーを解決するには、PHP で配列キーとして使用する場合、文字列リテラルを引用符で囲む必要があります。たとえば、正しいコード スニペットは次のようになります。
$department = mysql_real_escape_string($_POST['department']); $name = mysql_real_escape_string($_POST['name']); $email = mysql_real_escape_string($_POST['email']); $message = mysql_real_escape_string($_POST['message']);
配列キーを引用符で囲むことにより、PHP はそれらを定数ではなく文字列リテラルとして正しく解釈し、「未定義の定数の使用」エラーを排除します。
以上がPHP が「未定義定数の使用」エラーをスローするのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。