PHP에서 예상치 못한 T_VARIABLE은 무엇입니까?


86

이 PHP 오류가 발생합니다.

구문 분석 오류 : 구문 오류, 예상치 못한 T_VARIABLE

이 줄에서 :

$list[$i][$docinfo['attrs']['@groupby']] = $docinfo['attrs']['@count'];

이 라인에 문제가 있습니까?


1
X-Ref : PHP 구문 분석 / 구문 오류; 그리고 그들을 해결하는 방법? - 기타 일반적인 원인 및 상황 별 수정으로 인해 예상치 못한 T_VARIABLE .
mario

답변:


189

붙여 넣은 줄 앞에 줄이 누락 된 세미콜론 또는 대괄호가있을 수 있습니다.

나에게는 괜찮아 보인다. 모든 문자열은 배열 인덱스로 허용됩니다.


아, 생각 나게 하셨어요. 대괄호가 놓 쳤어요. 왜 T_VARIABLE이라고 불리 죠?
omg

2
오류 메시지는 누락 된 항목이 아니라 무엇이 있는지 (예기치 않은) 알려줍니다. 그리고 변수가있어서 정확하게 알려줍니다.
OregonGhost

2
예상치 못한 $list것은 변수 이기 때문 입니다.
Michael Krelin-해커

2
PHP는 브래킷을 기대했다 및 변수를 찾을 수 있기 때문에 그것은 당신에게 '예기치 않은 변수'이야기, 그 이유입니다
knittl

24

다른 라인 일 수도 있습니다. PHP가 항상 정확하지는 않습니다.

아마도 이전 줄에 세미콜론이 누락되었을 것입니다.

이 오류를 재현하는 방법은 다음과 같은 파일에 넣습니다 a.php.

<?php
  $a = 5
  $b = 7;        // Error happens here.
  print $b;
?>

실행 :

eric@dev ~ $ php a.php

PHP Parse error:  syntax error, unexpected T_VARIABLE in
/home/el/code/a.php on line 3

설명:

PHP 파서는 프로그램을 일련의 토큰으로 변환합니다. A T_VARIABLE는 VARIABLE 유형의 토큰입니다. 구문 분석기가 토큰을 처리 할 때 토큰을 이해하려고 시도하고 허용되지 않는 변수를 수신하면 오류를 발생시킵니다.

위의 간단한 경우 variable $b에서 파서는 다음을 처리하려고했습니다.

$a = 5 $b = 7;

PHP 구문 분석기는 5 이후 $ b를보고 "예기치 않은"이라고 말합니다.


2

제 경우에는 PHP 버전의 문제였습니다.

내가 사용한 .phar 파일은 PHP 5.3.9와 호환되지 않았습니다. 인터프리터를 PHP 7로 전환하면 문제가 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.