2009-05-31 5 views
2

HTML 및 PHP 분리에 대한 다른 질문이 있는데 자습서 및 예제 페이지에서 이에 대한 참조를 보았습니다. 그러나 HTML과 PHP의 분리가 사람들이 실제로 논평 한 것과 다른 것으로 나타났습니다. 그리고 나는 그것이 PHP 모드라고 생각한다.PHP 모드에서 PHP가 깨져서 나오지 않거나하지 않습니다.

PHP에서 깨어나거나 그렇지 않습니다. 그것은 끝나야 하는가? 그것은 중요한가?

내 HTML 출력을 반향 출력하는 것이 중요합니까? 아니면 내 보내야합니까?

예 :

<?php 

echo '<html'>; 

?> 

<?php 

dostuff(); 

?> 

<html> 

<? 

morestuff(); 

?> 
+0

MVC 방식을 통해 이전에 나에게 보여준 것과 동일한 장단점이 있습니다. –

+0

그래서 배웁니다 ... 고마워요! – ian

답변

1

나는 "탈옥"에 의해 가정이 의미 :

<?php 
    foo(); 
    echo("test"); 
    bar(); 
?> 

그럼 반대로

<?php foo(); ?> 
test 
<?php bar(); ?> 

, 최초의 솔루션 중 하나 장점은 레이아웃이 여전히 더 많거나 적은 읽을 수있는 점이다 HTML 편집기. 또한 레이아웃과 로직을 적어도 다른 변형보다 더 많이 분리합니다. 문자열을 파싱하고 echo 할 필요가 없으므로 두 번째 옵션보다 약간 빠릅니다. flipside에서, 의미 상으로 관련이있는 것들이 갑자기 분리되기 때문에 톤과 톤의 개별적인 PHP 블록을 읽는 것이 정말 어려울 수 있습니다. 물론 두 가지 방법을 결합 할 수도 있습니다.

나는 여기서 중요한 점은 프로그램의 논리가 너무 어둡게 변해서 포맷팅을하고 echo'ing하면 '실제'템플릿 엔진을 사용해야한다는 것이다.

+0

감사합니다. 접근 방법을 빗어 냄으로써 각자 자신에게 가장 적합한 곳을 사용하는 것입니다 ... 하나의 에코를 사용한다면 ... 복잡한 HTML 블록이 나올 경우 ... 코드를 읽으면 코드를 읽는 것이 어렵게됩니다. 하지마. 그런 종류의? – ian

+1

조기 최적화는 모든 악의 뿌리입니다. 차이점은 구문 분석 속도가 무시할 만하다는 것이고 컨텍스트 전환은 상당히 비쌉니다. 그래서 '빠름'은 출력하고자하는 '텍스트'의 양에 달려 있습니다. 대신 가독성/유지 보수성에 중점을 두어야합니다. – Jacco

+0

PHP는 훌륭한 템플릿 엔진입니다. 혼자 힘들어하고 팀 플래이트 파일에서 if, else, for 및 foreach 만 수행하십시오. –

0

당신이 이런 종류의 의미 탈옥에 의한 경우 :

<?php 
    if($somecondition) { 
?> 
<!-- Some HTML --> 
<?php 
    } 
?> 

그리고 네, 돌발하는 것은 대부분의 경우에 더 나은을 더 읽기 쉽기 때문에 (많은 IDES가 HTML 구문을 강조하고 echo() 될 때 문자열을 사용하면 그렇게 할 수 없습니다)

+2

그냥 대체 할 생각이라면 대체 양식을 입력하면됩니다 : 여러 블록에 걸쳐 있기 때문에 가끔씩 중괄호와 일치시키기가 어렵습니다. –

1

상황에 따라 다르다고 생각합니다.

브라우저에 몇 줄을 반복하고 싶습니까? 행에 $ 변수 값이 있습니까? $ 배열 값? 물점을 루프 처리합니까?

저에게있어, 대부분의 경우 에코를 사용하는 것이 더 재밌습니다.

<?php 
    if (check($something)) { 
     echo "Some variable is: $something<br/>\n"; 
    } else { 
     echo "Some variable is something else!<br/>\n"; 
    } 
?> 

더 판독 될 수있는 것보다 :

<?php 
    if (check($something)) { 
     echo 'Some variable is: '.$something."<br/>\n"; 
    } else { 
     echo "Some variable is something else!<br/>\n"; 
    } 
?> 

물 :

<?php if (check($something)) { ?> Some variable is: <?php echo $something; ?><br/> <?php } else { ?> Some variable is something else!<br/> <?php } ?> 

일부 십오 (또는 예 stackoverflow.com 구문 강조), 그것도 사용하는 것이보다 판독 될 수와

요약 :

PHP는 클라이언트에게 컨텐츠를 보내기위한 많은 옵션을 제공합니다.
'가장 좋은 방법'은 대소 문자가 다른 경우와 다릅니다.

가장 읽기/유지 관리가 용이 ​​한 방법을 선택하십시오.을 일관되게 사용하십시오.

+0

왜이 downvoted 무엇입니까? – Jacco

관련 문제