> 백엔드 개발 > PHP 튜토리얼 > PHP 7에서 \'치명적인 오류: [] 문자열에 대해 지원되지 않는 연산자\'가 나타나는 이유는 무엇입니까?

PHP 7에서 \'치명적인 오류: [] 문자열에 대해 지원되지 않는 연산자\'가 나타나는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-01 05:03:27
원래의
354명이 탐색했습니다.

Why Am I Getting the

"치명적인 오류: [] 문자열에 지원되지 않는 연산자" 문제 해결

이 치명적인 오류는 짧은 구문을 사용하려고 할 때 발생합니다. 배열이 아닌 변수(일반적으로 문자열)에 대한 배열 푸시 작업의 경우. 제공된 코드 조각을 조사하면 하나 이상의 변수($name, $date, $text, $date2)가 처음에 문자열로 정의되었을 가능성이 높습니다.

이 문제를 해결하려면 배열을 생성하지 않고 이러한 변수에 행 값을 직접 할당하는 루프:

<code class="php">$name = $row['name'];
$date = $row['date'];
$text = $row['text'];
$date2 = $row['date2'];</code>
로그인 후 복사

PHP 7에서는 빈 인덱스가 있는 배열 푸시 구문에 대해 더 엄격한 규칙을 구현했습니다. 이전에 배열이 아닌 것으로 정의된 변수(문자열, 숫자, 객체)는 이제 이 구문을 사용하는 것이 금지되어 앞서 언급한 오류가 발생합니다.

강조하자면, 이러한 작업은 PHP 7에서도 유효합니다.

<code class="php">unset($arrayWithEmptyIndices);
$arrayWithEmptyIndices[] = 'value'; // Creates an array and adds an entry

$array = []; // Creates an array
$array[] = 'value'; // Pushes an entry</code>
로그인 후 복사

그러나 문자열, 숫자 또는 개체로 선언된 변수에 배열 푸시 구문을 사용하려고 하면 치명적인 오류가 발생합니다.

<code class="php">$stringAsVariable = '';
$stringAsVariable[] = 'value';

$numberAsVariable = 1;
$numberAsVariable[] = 'value';

$objectAsVariable = new stdclass();
$objectAsVariable[] = 'value';</code>
로그인 후 복사

위 내용은 PHP 7에서 \'치명적인 오류: [] 문자열에 대해 지원되지 않는 연산자\'가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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