2009-11-01 4 views
9

닫는 PHP 태그 ?>이 생략 된 튜토리얼 (내가 추가 할 수 있다면 평판 좋은 것)을 보았습니다. 이것은 이전 튜토리얼을 생각 나게했는데 저자가 실제로 이 아니고이 아니라면 그 이유를 설명하지 못했음을 상기 시켰습니다. 나는 조금 놀랐다. 나는 태그를 닫는 것이 더 나은 습관이라고 생각했다. 왜 그것을 닫지 않는 것이 더 낫습니까? 항상 모든 것이거나 특별한 경우에만 있습니다.언제 php 파일을 닫지 않으시겠습니까?

답변

17

마지막 닫기 태그 뒤의 공백으로 인해 스크립트가 자동으로 실패하거나 원치 않는 결과가 브라우저로 전송 될 수 있습니다. 같은 젠드 프레임 워크와 같은 일부 프레임 워크는 는 이러한 상황을 방지하기 위해 ZF을 사용하는 응용 프로그램 개발자들에게 연습을 권장 omitting the final closing 태그를 통합하고, 가지고 요구 사항을 자신의 코딩 표준에 따라로 :

포함 된 파일의 경우 PHP 코드 만 닫는 태그 ("?>")는 결코 허용되지 않습니다 . 그것은 PHP에서 필요하지 않습니다. 을 생략하면 우연한 후행 흰색 공간이 응답에 삽입되지 않습니다.

그렇다면 닫는 태그를 생략하면 근본 원인이 아직 해결되지 않은 문제에 대한 해결 방법이라고 할 수 있습니다. This blog post은 매우 똑같은 것을 주장합니다.

+1

왜이 문제가 PHP에서 발생합니까?이 동작을 기본값으로 유지하는 이유는 무엇입니까? – Omar

+0

일부 FTP 클라이언트는 알고있는 한 파일 끝에 빈 새 행을 삽입하는 경향이 있습니다. 종결 태그를 생략하면 예상치 못한 결과가 발생하지 않습니다. – pestaa

4

글쎄, config.php와 같은 include 파일이 있는데, 그것이 의도하지 않았거나 "header already to sent"를 트리거하고 싶지 않기 때문에 어떤 글자도 출력하는 것을 원치 않는다면, 닫는 태그 브라우저에 공백을 보내지 않도록 설정하십시오. 순수 PHP이고 출력 할 내용이 없으므로 일반적으로 닫는 태그가 포함되지 않습니다.

결론은 머리글을 설정하기 전에 내용을 미리 작성하지 않으려는 것입니다. 이것은 깊이 here에 대해 이야기합니다.

2

다른 답변에 더하여이 연습은 주로 PHP 코드 만 포함 된 파일에서 사용된다는 점에 유의하고 싶습니다.

템플릿/뷰를 편집하는 동안 항상 마지막 태그를 닫습니다. 따라서 그 시점 아래에 다른 콘텐츠를 추가 할 필요가 없습니다.

관련 문제