질문에 직접 대답하려면 정적 텍스트 나 HTML을 에코 하지 마십시오 . PHP 외부에 두십시오.
<?php echo "<p>Hello World</p>"; // Alway wrong. ?>
<p>Hello World</p> <!-- Does the same thing, faster, and is more readable. -->
정적 텍스트 또는 정적 HTML을 전달하는 것만으로 PHP로 탈출하는 것은 낭비입니다. 내부의 모든 코드 <?php ?>
는 PHP로 전송되어 해석됩니다. 이는 귀하의 웹 사이트가 느려지고 아무 이유없이 많은 양의 정적 텍스트를 PHP로 전달하는 경우 전기를 낭비하고 있음을 의미합니다. (때로는 이유가 있습니다.)
모범 사례는 HTML없이 PHP만으로 파일에서 논리와 그 루트 한 작업을 수행하는 것입니다.
내가 이것을 좋아하는 방법은 MVC 프레임 워크를 사용하는 것입니다. 모델과 컨트롤러에는 순수한 PHP가 있고 뷰에는 HTML과 PHP가 혼합되어 있습니다. MVC 프레임 워크가 필요하지 않습니다. HTML 파일을 템플릿 파일에 붙여 넣고 순수 PHP 파일에 포함시킬 수 있습니다.
순수 PHP 파일로 변수 (HTML을 포함하지 않음)를 만든 후에는 HTML을 사용하여 파일로 전달할 수 있습니다. HTML과 PHP를 혼합하는 것이 좋습니다. 그러나 이것은 중요하지만 HTML이있는 파일로 작업 할 때는 PHP를 최소한으로 유지하십시오.
운 좋게도 PHP에는 HTML과 혼합 된 경우 PHP를 쉽게 읽을 수있는 친숙한 도구가 제공됩니다.
대체 구문
가장 좋은 방법은 순수한 PHP를 작성할 때 일반 PHP 구문을 사용하는 것이지만 PHP와 HTML을 혼합 할 때는 대체 구문을 사용하는 것입니다.
HTML이없는 일반 PHP 파일에서 :
if ($something) {
do_something(); // do_something() shouldn't echo or print.
}
순수 PHP에는 적합하지만 HTML에서 벗어날 때는 이상적이지 않습니다. 특히 닫는 괄호는 HTML의 큰 더미에 나타날 때 이해하기 어려운 경우가 많습니다.
귀하의 질문에 따라 HTML과 PHP가 혼합 된 파일로 작성했을 것입니다.
<?php
if ($something) {
echo '<p>Hello World.</p>';
}
?>
위에서 설명한 이유로 HTML을 PHP로 보내지 않기를 원합니다. 우리는 이렇게합니다 :
<?php if ($something) { ?>
<p>Hello World.</p>
<?php } ?>
PHP 태그에서 HTML을 얻었습니다. 이는 개선 된 것입니다. 그러나 우리는 더 나아갈 수 있습니다.
닫는 버팀대가 얼마나 유익하지 않습니까? 루프 또는 if 문을 닫고 있는지 알 수 없습니다. 위의 예제에서는 사소한 것처럼 보이지만 루프 / 엔드 루프 안에 if / endif 안에 수십 줄의 HTML이있는 경우가 많습니다.
가장 좋은 방법은 PHP와 HTML을 혼합 한 파일에서 중괄호 ( { }
)를 열고 닫는 대체 구문을 사용하는 것입니다 .
<?php if ($something): ?>
<p>Hello world.</p>
<?php endif; ?>
이외에도 (새로운 구문의 의미에서 :
와 endif;
대신 {
과 }
), 당신은 두 가지를주의해야 :
- 다시 말하지만 HTML과 텍스트는 PHP에 의해 제어되지만
<?php ?>
태그 외부에 있으므로 해석되지 않습니다. 위에서 설명한 이유로, 이것이 좋습니다.
- 이것은 이것이 임의의 닫는 괄호 (
<?php } ?>
)를 포함하여 모두 PHP 인 경우보다 훨씬 더 유익 합니다. 다시, 루프와 if 문이있는 큰 HTML 파일을 상상해보십시오. 닫는 것을 지정하면 많은 것을 알 수 있습니다.
동일한 템플릿 친화적 구문을 루프에도 사용할 수 있습니다.
<?php foreach ($things as $thing): ?>
<li><?php echo $thing; ?></li>
<?php endforeach; ?>
짧은 태그
PHP가 제공하는 또 다른 훌륭한 도구는 PHP와 HTML을 함께 혼합 할 때만 사용하려는 짧은 태그입니다. php.ini 파일에서 짧은 태그를 켜야 할 수도 있습니다. 일단 켜면 짧은 태그로 모든 것을 더 읽기 쉽게 만듭니다.
짧은 태그가 없으면 작성해야 <?php echo $something; ?>
하지만 짧은 태그를 사용하면 작성할 수 <?=$something?>
있으며 결과는 동일합니다.
짧은 태그와 대체 PHP 구문을 결합하면 PHP 요소를 포함하는 우아한 HTML 파일을 실제로 작성할 수 있습니다. 마지막 루프 예제 (루프 내부의 일부)를 살펴보면 짧은 태그를 사용하여 다음을 줄일 수 있습니다.
<li><?php echo $thing; ?></li>
에
<li><?=$thing?></li>
훨씬 더 읽기 쉽습니다.
더 나아갈 수 있을까요? 예. 다양한 템플릿 시스템을 사용하면 다음과 같은 작업을 수행 할 수 있습니다.
<li>{thing}</li>
놀랍게도 읽을 수 있습니다. 그러나 템플릿 시스템은 원래 질문의 범위를 벗어났습니다 (어쨌든 얼마 전에 남았습니다).