ホームページ > バックエンド開発 > PHPチュートリアル > PHP が「未定義定数の使用」エラーをスローするのはなぜですか?それを修正するにはどうすればよいですか?

PHP が「未定義定数の使用」エラーをスローするのはなぜですか?それを修正するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-16 07:33:10
オリジナル
464 人が閲覧しました

Why Does PHP Throw a

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート