2014-01-21 2 views
1

경우 1 :히어 닥 태그와 닫는 태그 문제

<?php  
echo <<<"FOOBAR" 
Hello World! 
FOOBAR; 

이 경우

대 :

<?php 
echo <<<"FOOBAR" 
Hello World! 
FOOBAR; 
?> 

나는 히어 닥 사용에 대한 질문이 있습니다. 설명을 사용할 수있는 이상한 행동이 있습니다.

사례 1을 시도 할 때 "Hello World!"가 표시되지 않습니다. 출력 인쇄. 대신 다음과 같은 구문 분석 오류가 표시됩니다.

Parse error: syntax error, unexpected end of file, expecting variable (T_VARIABLE) or heredoc end (T_END_HEREDOC) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in C:\xampp\htdocs\test\index.php on line 5 

그러나 사례 2의 경우 "Hello World!"텍스트가 올바르게 인쇄됩니다.

사례 2에서 닫는 태그를 제거하고 대신 여분의 줄을 추가 할 때도 마찬가지입니다.

누구나 행동을 설명하고 왜 그런 일이 일어날 수 있습니까?

+0

나는 당신의 두 예제를 시도하고, 둘 다 기능 반향에 의한에 "Hello World!"를 예상대로 왜 재현 할 수 없기 때문에 케이스 1에서 오류가 발생하는지 확신 할 수 없습니다. –

+0

btw 문제가있는 경우 xampp을 사용하여 Windows 환경에서이 작업을 시도하고 있습니다. – raj

답변

2

당신은

체크 설명 맞다 : - 닫기 식별자를 갖는 줄은 세미콜론을 제외하고 다른 문자를 포함해야합니다 점에 유의하는 것이 매우 중요합니다(). 이는 특히 식별자가 들여 쓰기가되지 않을 수 있으며 세미콜론 전후에 공백이나 탭이 없어야 함을 의미합니다.

닫는 식별자 앞의 첫 번째 문자는 로컬 운영 체제에서 정의한 개행이어야한다는 점도 중요합니다. Mac OS X를 포함하여 UNIX 시스템에서는 \ n입니다. 닫는 구분 기호 뒤에는 개행 문자가 와야합니다.

이 규칙이 잘못되어 닫는 식별자가 "깨끗한"것이 아니라면 닫는 식별자로 간주되지 않으므로 PHP는 계속 찾고 있습니다. 현재 파일의 끝 부분 이전에 적절한 닫기 식별자가 없으면 구문 분석 오류가 마지막 줄에서 발생합니다. 더 확인을위한


http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

관련 문제