[php] PHP 짧은 태그를 사용할 수 있습니까?

공식 문서에 따른 정보는 다음과 같습니다 .

PHP에서 사용할 수있는 4 가지 서로 다른 시작 및 종료 태그 쌍이 있습니다. 그 두 가지, <?php ?>
그리고 <script language="php"> </script>항상 사용할 수 있습니다. 다른 두 가지는 짧은 태그와 ASP 스타일 태그이며 php.ini 구성 파일에서 켜거나 끌 수 있습니다. 따라서 일부 사람들은 짧은 태그와 ASP 스타일 태그가 편리하다고 생각하지만 이식성이 떨어 지므로 일반적으로 권장하지 않습니다 .

내 경험에 의하면 대부분의 서버는 않는 짧은 태그를 사용할 수 있습니다. 타자

<?=

입력하는 것보다 훨씬 편리합니다

<?php echo 

프로그래머 편의성이 중요한 요소이므로 권장하지 않습니까?



답변

코드가 지원되지 않는 서버로 코드를 이동해야하는 경우 PITA이므로 사용하지 않는 것이 좋습니다 (사용할 수 없음). 당신이 말했듯이, 많은 공유 호스트 짧은 태그를 지원하지만 “lots”가 전부는 아닙니다. 스크립트를 공유하려면 전체 구문을 사용하는 것이 가장 좋습니다.

나는 동의 <?하고 <?=보다 프로그래머에 쉽게 <?php하고 <?php echo있지만 한 같은 형태로 각 시간을 사용 (공백 (예에서 척하지 않는 한 발견이 및 바꾸기 일괄 작업을 수행 할 수 있습니다 : <? php<? =)

나는 가독성을 전혀 사지 않습니다. 대부분의 심각한 개발자는 구문 강조 옵션을 사용할 수 있습니다.

주석에서 ThiefMaster가 언급했듯이 PHP 5.4 <?= ... ?>부터는 짧은 태그 설정에 관계없이 모든 곳에서 태그가 지원됩니다 . 이것은 이식 가능한 코드에서 사용하기에 안전하지만 PHP 5.4+에 대한 의존성이 있음을 의미합니다. 5.4 이전 버전을 지원하고 짧은 태그를 보장 할 수없는 경우 여전히을 사용해야 <?php echo ... ?>합니다.

또한 ASP 태그 <%, %>, <% = 및 스크립트 태그가 PHP 7에서 제거 되었음을 알아야합니다 . 따라서 장기 휴대용 코드를 지원하고 최신 도구로 전환하려면 해당 코드 부분을 변경하는 것이 좋습니다.


답변

나는 그것을 놓기가 너무 좋아 <?=$whatever?>. 문제가 없었습니다. 엉덩이에 물릴 때까지 기다립니다. 진지하게, (나의) 클라이언트 중 85 %가 드문 경우 지만 php.ini에 액세스 할 수 있습니다. 나머지 15 %는 주류 호스팅 제공 업체를 사용하며 사실상 모든 공급 업체가 사용하도록 설정했습니다. 나는 그들을 사랑합니다.


답변

PHP 5.4부터는 에코 바로 가기가 항상 활성화되므로 에코 바로 가기는 짧은 태그와는 별개의 문제입니다. 지금은 사실입니다.

따라서 에코 바로 가기 자체 ( <?=)는 이제 안전하게 사용할 수 있습니다.


답변

이 전체 토론의 문제는 PHP를 템플릿 언어로 사용하는 데 있습니다. 아무도 애플리케이션 소스 파일에서 태그를 사용해야한다고 주장하지 않습니다.

그러나 PHP의 내장 구문을 사용하면 강력한 템플릿 언어로 사용할 수 있으며 템플릿은 가능한 한 단순하고 읽을 수 있어야합니다. 많은 사람들이 Smarty와 같이 훨씬 느리고 부가적인 템플릿 엔진을 사용하는 것이 더 쉽다는 것을 알았지 만 빠른 렌더링과 순수한 코드 기반을 요구하는 순수 퓨어리스트에게는 PHP가 템플릿을 작성하는 유일한 방법입니다.

짧은 태그 사용에 대한 유일한 유효한 인수는 모든 서버에서 지원되지 않는다는 것입니다. 어쨌든 PHP와 XML을 혼용해서는 안되기 때문에 XML 문서와의 충돌에 대한 의견은 터무니 없다. 그리고 있다면 PHP를 사용하여 텍스트 문자열을 출력해야합니다. 템플릿 파일 내에 데이터베이스 액세스 자격 증명과 같은 중요한 정보를 넣는 경우 더 큰 문제가 발생하므로 보안은 결코 문제가되지 않습니다.

이제 서버 지원 문제와 관련하여 대상 플랫폼을 알고 있어야합니다. 공유 호스팅이 가능한 경우 짧은 태그를 피해야합니다. 그러나 많은 전문 개발자 (나 자신과 같은)의 경우 고객은 서버 요구 사항을 지시 할 것임을 인정합니다. 종종 서버를 직접 설정해야합니다.

또한 서버 구성을 완벽하게 제어 할 수없는 호스팅 제공 업체와는 절대로 협력하지 않습니다. 이러한 경우 짧은 태그 지원을 잃는 것보다 훨씬 더 많은 문제에 부딪 칠 수 있습니다. 그것은 일어나지 않습니다.

그렇습니다. 저는 짧은 태그 사용을 신중하게 고려해야한다는 데 동의합니다. 그러나 나는 그것이 항상 옵션이되어야한다고 믿고 있으며, 자신의 환경을 알고있는 개발자는 자유롭게 사용할 수 있다고 생각합니다.


답변

Zend Framework 덕분에 기본 MVC 구성 에서 ” PHP를 템플릿 언어로 ” 푸시하는 짧은 태그가 다시 제공 됩니다 . 토론 내용에 대해 잘 모르겠습니다. 평생 동안 생산할 소프트웨어의 대부분은 귀하 또는 회사가 제어하는 ​​서버에서 작동합니다. 일관성을 유지하는 한 아무런 문제가 없어야합니다.

최신 정보

긴 형태를 사용하는 Magento로 꽤 많은 작업을 한 후 . 결과적으로 다음과 같은 긴 형식으로 전환했습니다.

<?php and <?php echo

위에

<? and <?=

상호 운용성을 보장하는 소량의 작업 인 것 같습니다.


답변

혼란 때문에 XML 선언으로 생성 할 수 있습니다. 많은 사람들 당신의 의견에 동의합니다 .

추가 관심사는 최종 호스팅 서버가 꺼져 있다는 것을 알기 위해 짧은 태그로 모든 것을 코딩하기 위해 생성되는 고통입니다 …


답변

다음은 동일한 훌륭한 흐름도입니다.

<? =의 의사 결정 트리

출처 : Software Engineering Stack Exchange에 대한 비슷한 질문