2012-04-05 5 views
1

좋아, 사람이 바로 나에게 PHP 코드의 조각을 표시하고 파일의 끝에 나는 길 잃은 <?php } ?>을 보았다. 컴파일 오류가 발생한다고 생각했지만 그렇지 않습니다.PHP의 경우 '다른 코드 블록에 걸쳐

는 왜 :

<?php 
    if(1==1){ 
?> 
X 
<?php } ?> 

유효?

는 여러 PHP 블록으로 문을 분할 안전한가요?

PS : 나는 그 답 "예"에서 더 많은 뭔가를 기다리고 있었다 : D

답변

1

: 열기 태그와 닫기 태그 한 쌍의 외부

모든 것이 PHP 파일이 혼합 된 콘텐츠를 수있는 PHP 파서에 의해 무시됩니다. 이 을 사용하면 PHP를 HTML 문서에 포함 할 수 있습니다. 예를 들어 템플릿을 만들 수 있습니다. PHP의 신비한 세계에

에 오신 것을 환영합니다.

+0

파서가이를 무시하면 조건이 거짓 일 때 X가 표시되지 않습니다. O_o – Cristy

+1

인터프리터는 파서가 아닌 이것을 처리하기 때문에. 통역사는 무엇을 건너 뛰어야할지 결정하기 전에 조건부 결과를 결정합니다. 조건이 충족되지 않은 블록은 PHP 열기/닫기 태그 외부에 있더라도 PHP는 블록을 건너 뜁니다. PHP 인터프리터가 충족되지 않은 조건에 포함 된 블록을 뛰어 넘을 것이기 때문에 PHP는 조건에 따라 스크립트를 건너 뜁니다. ([매뉴얼에서 거의 인용하고 있습니다.] (http://php.net/manual/en/language.basic-syntax.phpmode.php)) – ghbarratt

0

안전? 예.

읽을 수 있습니까? 그렇지 않아. 가능한 한 당신의 HTML와 PHP 로직을 혼합

마십시오. 이것이 독서를 어렵게 만들고 코드를 이해하기가 어렵 기 때문에 이것이 좋은 아이디어 인 경우는 거의 없습니다.

0

예, 괜찮습니다.

그것은 종종 HTML의 큰 블록 "PHP 모드"에서 떨어 유용 -이 기술은 어디서나 HTML을 사용하고 PHP가 혼합되어 나타납니다.

+0

설명이없는 "예"가 도움이되지 않아 답변이 일정한 길이 여야합니다. –

2

예 그건 괜찮지 만, 내가 제안 :

<?php if(1==1):?> 
X 
<?php endif; ?> 

그것은 만드는 조금 더 읽기 후 임의 {

0

그것은 유효 }하지만 not recommended 당신은 코드를 갖고 싶어 그것은 장기적으로 유지 보수가 가능하고 판독 가능하다.

당신은 PHP에서 때마다 "출구", 당신은 HTML를 입력 명심해야합니다. manual에서

관련 문제