> 백엔드 개발 > PHP 튜토리얼 > 정적 변수를 초기화할 때 내 PHP 코드에서 '치명적 오류: 상수 표현식에 잘못된 작업이 포함되어 있습니다' 오류가 발생하는 이유는 무엇입니까?

정적 변수를 초기화할 때 내 PHP 코드에서 '치명적 오류: 상수 표현식에 잘못된 작업이 포함되어 있습니다' 오류가 발생하는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-01 04:14:08
원래의
999명이 탐색했습니다.

Why Does My PHP Code Throw a

PHP 치명적인 오류: 상수 표현식이 잘못된 연산

"치명적인 오류: 상수 표현식에 잘못된 연산이 포함되어 있습니다."라는 오류가 발생하는 경우 다음과 같은 경우에 발생합니다. PHP 정적 변수가 PHP 이전에 리터럴이 아니거나 상수가 아닌 값으로 초기화를 시도합니다. 5.6.

귀하의 경우 문제의 줄:

protected static $dbname = 'mydb_'.$appdata['id'];
로그인 후 복사

정적 속성 $dbname을 동적 변수 $appdata['id']의 값으로 초기화하려고 시도합니다. 그러나 PHP 5.6 이전에는 정적 속성을 상수 또는 리터럴로 초기화해야 합니다.

그 이유는 정적 선언이 컴파일 타임에 평가되기 때문입니다. 이는 PHP 인터프리터가 런타임에만 알려진 동적 변수에 액세스할 수 없음을 의미합니다. . 이 오류를 해결하려면 다음을 수행할 수 있습니다.

  • $appdata['id']를 상수 문자열로 바꿉니다. 데이터베이스 이름이 고정 값인지 확인하고 직접 할당합니다. 예: protected static $dbname = 'mydb_my_app';.
  • 정적 제거 속성: $dbname이 정적일 필요가 없다면 static 키워드 없이 일반 변수로 선언하세요(예: protected $dbname = 'mydb_my_app';).

위 내용은 정적 변수를 초기화할 때 내 PHP 코드에서 '치명적 오류: 상수 표현식에 잘못된 작업이 포함되어 있습니다' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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