> 백엔드 개발 > PHP 튜토리얼 > PHP에서 '정의되지 않은 상수 사용' 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

PHP에서 '정의되지 않은 상수 사용' 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-12-16 07:33:10
원래의
463명이 탐색했습니다.

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가 문자열 리터럴 "department", "name,"을 해석하려고 시도하고 있음을 나타냅니다. "email" 및 "message"를 상수로 사용합니다. 그러나 그러한 상수가 정의되어 있지 않으므로 PHP는 이를 문자열 리터럴로 가정하고 "정의되지 않은 상수 사용"이라는 오류 메시지를 표시합니다.

오류 해결

To 이 오류를 해결하려면 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿