“elseif”와“else if”는 완전히 동의어입니까?


170

인가 elseifelse if완전히 동의어, 또는 차이가있다?

Zend는 어느 표준을 사용할 수있는 "표준"을 가지고 있습니까?

개인적으로 elseif코드에서 보는 것을 싫어하지만 , 동의어이고 PHP 매뉴얼이 검색하기 가장 쉬운 지 알아야합니다.


10
다른 모든 언어가를 사용 else if하는 것은 아닙니다. 예를 들어 VB는을 사용 ElseIf하고 Ruby는을 사용합니다 elsif.
Daniel Vandersluis

6
shell / bash는 elif
knittl을

7
파이썬은 ELIF 사용
gregghz

답변:


218

보내는 사람 PHP 매뉴얼 :

PHP에서는 'else if'(두 단어로)를 쓸 수 있으며 동작은 'elseif'(한 단어로)와 동일합니다. 구문 적 의미는 약간 다릅니다 (C에 익숙한 경우 동일한 동작입니다). 그러나 결론은 둘 다 정확히 동일한 동작을 초래한다는 것입니다.

본질적으로 그것들은 동일하게 동작하지만 else if기술적으로 중첩 구조와 동일합니다.

if (first_condition)
{

}
else
{
  if (second_condition)
  {

  }
}

설명서에는 다음과 같은 참고 사항도 있습니다.

elseif와 else if는 위 예제에서와 같이 중괄호를 사용할 때 정확히 동일하게 간주됩니다. 콜론을 사용하여 if / elseif 조건을 정의 할 때 다른 단어를 두 단어로 분리하지 않아야합니다. 그렇지 않으면 PHP가 구문 분석 오류로 실패합니다.

이는 일반적인 제어 구조 형식 (즉, 중괄호 사용)에서 다음을 의미합니다.

if (first_condition)
{

}
elseif (second_condition)
{

}

하나 elseif또는 else if사용할 수 있습니다. 그러나 대체 구문 을 사용하는 경우 다음 을 사용해야합니다 elseif.

if (first_condition):
  // ...
elseif (second_condition):
  // ...
endif;

18
예제 스 니펫에 잘 작동합니다. PHP가 단순히으로 취급한다는 것을 증명하기 위해서는 대체 구문 만 있으면 else if됩니다 else { if {.
BoltClock

2
PHP는 취급하지 않습니다 else if같은 else { if {그렇지 않으면 당신은 할 수없는 것, if (0) { } else if (0) { } else { }...
귀도 Hendriks

4
@GuidoHendriks : 하나는 다른 것으로 취급되는 것이 아니라 기능적으로 동등한 것입니다. 예제는 중첩 양식과 같습니다 if (0) { } else { if (0) { } else { } }. 마지막 else블록 에는 애매 모호함이 없으며 , 항상 완전한 브랜치 (모두 if가 있음 else)의 경우입니다.
outis


대체 synyax를 사용하면 다음 if ($v1='1'): do_thing(); else: if($v1='b' ): do_another_thing(); else: do_smthing_else(); endif; endif; 과 같은 경우 '콜론'과 내부의 endif를 기억해야합니다 . if ($v1='1'): do_thing(); elseif($v1='b' ): do_another_thing(); else: do_smthing_else(); endif;
DDS

47

Zend 개발자 ( https://github.com/php-fig/fig-standards#voting-members ) 를 포함하는 멤버로 구성된 FIG (Framework Interoperability Group) 는 일련의 표준 권장 사항 (PSR)을 구성했습니다. -#).

Zend2 및 Symfony2는 이미 PSR-0을 따릅니다.

스타일에 대한 단단하고 빠른 규칙은 없지만 가능한 한 많은 PSR-2를 시도하고 따를 수 있습니다.

PSR-2에서 else와 elseif에 대한 의견이 있습니다.

모든 else 키워드가 단일 단어처럼 보이도록 elseif 키워드를 else 대신 사용해야합니다.

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#51-if-elseif-else

일부 권장 사항은 권장 사항입니다. if 또는 elseif를 사용할지 여부는 귀하에게 달려 있습니다.


4
키워드 별 키워드 가이드 라인을 지적 해 주셔서 대단히 감사합니다.
Theodore R. Smith
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.