2011-07-03 5 views
1

개인 취향 외에 어떤 차이가 있습니까? 제 버전 ?> 사이 하나 거기 때문에,이하나의 PHP 태그 안에 묶음 코드를 넣으면 그 차이가 있습니까?

<?php 
    $meta = get_post_meta(get_the_ID(), 'rw_strNum', true); 
    '' != $meta and print "$meta"; 

    $meta = get_post_meta(get_the_ID(), 'rw_strName', true); 
    '' != $meta and print "$meta"; 
?> 
+0

은 정말 ... 나는이 응용 프로그램의 병목 의심한다. 모든 경우의 99.999 %에서 눈치 채지 못할 것입니다. – knittl

답변

2

출력 생성 된 출력에 추가 개행 문자 것이다 반대로

<?php 
    $meta = get_post_meta(get_the_ID(), 'rw_strNum', true); 
    '' != $meta and print "$meta"; 
?> 
<?php 
    $meta = get_post_meta(get_the_ID(), 'rw_strName', true); 
    '' != $meta and print "$meta"; 
?> 

<?php :

?> 
<?php 

그 유일한 차이점은; 둘 사이에 성능에 현저한 영향은 없습니다.

0

knittl이 말했듯이 눈에 띄는 차이는 없습니다. 유일한 차이점은 PHP와 HTML을 함께 사용할 때 (예 : 템플릿을 만들 때) HTML을 읽기 쉽게 만들어야한다는 것입니다.

PHP 파서는 전체 파일을 거치지 않고 닫는 태그를 발견하지 못하면 여는 태그가 구문 분석의 속도와 구문 분석 속도에 영향을 미칩니다.

2

<?php ?> 외부의 모든 것은 출력으로 처리됩니다. 이것은, 그

?> 
<?php 

수도 출력 무언가를 의미한다. ?> 이후의 개행이 태그의 일부이므로 반환되지 않기 때문에 "5 월"입니다. 그러나

?> 
    <?php 

같은 두 개의 공백 echo 에드있다. 문제는 뭔가를 브라우저에 반환 한 후에 더 이상 헤더를 설정할 수 없다는 것입니다.

0

네, 차이가 있습니다. 이 봐 : 첫 번째 예

<?php 
$uselessvar = 1; 
?> 
<?php 
header('Location: /'); // This will not work 
?> 

<?php 
$uselessvar = 1; 
header('Location: /'); // This will work 
?> 

를 제 종료 태그 ?> 및 제 2 개구부 <?php 태그 사이에 새로운 줄이있다. 이 새 줄은 출력으로 처리되어 클라이언트로 전송됩니다. header 클라이언트가 호출되기 전에 출력을 클라이언트에 보내면 함수가 작동하지 않습니다. 첫 번째 예제는 두 번째 예제가 작동하지 않는 이유입니다. 보다 일반적인 방법으로

, 그것은 이러한 오류를 방지하기 위해, 닫는 태그 필요할 경우에만 ?>를 사용하는 것이 좋습니다. 예를 들어, 닫는 태그 ?>을 PHP 파일의 끝에 넣지 않아도됩니다. 때로는 닫는 태그로 끝나는 파일과 새로운 빈 줄을 볼 수 있습니다. 이 새로운 빈 줄은 위와 같은 효과를 가지며 모든 스크립트를 충돌/변경할 수 있습니다.