차이점이 있습니까?
if ($value) {
}
…과…
if ($value):
endif;
?
답변
그것들은 동일하지만 두 번째 코드는 코드에 MVC가 있고 코드에 많은 에코를 원하지 않는 경우 좋습니다. 예를 들어 내 .phtml
파일 (Zend Framework)에서 다음과 같이 작성합니다.
<?php if($this->value): ?>
Hello
<?php elseif($this->asd): ?>
Your name is: <?= $this->name ?>
<?php else: ?>
You don't have a name.
<?php endif; ?>
답변
나는 개인적으로 대체 구문을 정말 싫어합니다. 중괄호에 대한 한 가지 좋은 점은 대부분의 IDE, vim 등이 모두 대괄호 강조 표시라는 것입니다. 내 텍스트 편집기에서 괄호를 두 번 클릭하면 청크 전체가 강조 표시되어 어디서 끝나고 쉽게 시작되는지 확인할 수 있습니다.
endif, endforeach 등을 강조 표시 할 수있는 단일 편집기를 모르겠습니다.
답변
나는 이것이 모든 것을 말한다고 생각한다.
이 대체 구문은 혼합 된 상황에서 가독성을 향상시키는 데 탁월합니다 (PHP 및 HTML 모두에 대해!).
http://ca3.php.net/manual/en/control-structures.alternative-syntax.php
HTML과 PHP를 혼합 할 때 대체 sytnax를 훨씬 쉽게 읽을 수 있습니다. 일반적인 PHP 문서에서는 전통적인 구문을 사용해야합니다.
답변
회사에서 HTML을 처리하는 기본 방법은 다음과 같습니다.
<? if($condition) { ?>
HTML content here
<? } else { ?>
Other HTML content here
<? } ?>
결국, 그것은 실제로 하나를 선택하고 고수하는 문제입니다.
답변
그것들은 실제로 기능적으로 동일합니다.
그러나 endif
통신원으로부터 너무 멀어지면 if
참조 의견을 제시하는 것이 훨씬 좋습니다. 열린 위치를 쉽게 찾을 수 있습니다. 어떤 언어인지에 관계없이 :
if (my_horn_is_red or her_umbrella_is_yellow)
{
// ...
// let's pretend this is a lot of code in the middle
foreach (day in week) {
sing(a_different_song[day]);
}
// ...
} //if my_horn_is_red
그것은 실제로 모든 유사한 “닫는 것”에 적용됩니다! 😉
또한 일반적으로 편집자는 중괄호를 더 잘 다루므로 열린 위치를 가리킬 수 있습니다. 그렇다고해서 설명적인 주석이 덜 유효한 것은 아닙니다.
답변
공식 문서에서 찾을 수 있습니다. PHP : 제어 구조의 대체 구문
답변
뷰 스크립트에서 if
s, for
s 및 foreach
es 를 함께 사용할 때 특히 명확하다고 생각합니다 .
<?php if ( $this->hasIterable ): ?>
<h2>Iterable</h2>
<ul>
<?php foreach ( $this->iterable as $key => $val ):?>
<?php for ( $i = 0; $i <= $val; $i++ ): ?>
<li><?php echo $key ?></li>
<?php endfor; ?>
<?php endforeach; ?>
</ul>
<?php elseif ( $this->hasScalar ): ?>
<h2>Scalar</h2>
<?php for ( $i = 0; $i <= $this->scalar; $i++ ): ?>
<p>Foo = Bar</p>
<?php endfor; ?>
<?php else: ?>
<h2>Other</h2>
<?php if ( $this->otherVal === true ): ?>
<p>Spam</p>
<?php else: ?>
<p>Eggs</p>
<?php endif; ?>
<?php endif; ?>
반대로 :
<?php if ( $this->hasIterable ){ ?>
<h2>Iterable</h2>
<ul>
<?php foreach ( $this->iterable as $key => $val ){?>
<?php for ( $i = 0; $i <= $val; $i++ ){ ?>
<li><?php echo $key ?></li>
<?php } ?>
<?php } ?>
</ul>
<?php } elseif ( $this->hasScalar ){ ?>
<h2>Scalar</h2>
<?php for ( $i = 0; $i <= $this->scalar; $i++ ){ ?>
<p>Foo = Bar</p>
<?php } ?>
<?php } else { ?>
<h2>Other</h2>
<?php if ( $this->otherVal === true ){ ?>
<p>Spam</p>
<?php } else { ?>
<p>Eggs</p>
<?php } ?>
<?php } ?>
이것은 바닥 괄호에서 상단 선언을 볼 수없는 긴 제어문에 특히 유용합니다.