São elseif
e else if
completamente sinônimos, ou há alguma diferença?
O Zend tem um "padrão" aceito em qual usar?
Embora eu pessoalmente não goste de ver elseif
o código, só preciso saber se eles são sinônimos e o manual do PHP não é o mais fácil de pesquisar.
php
syntax
conditional-statements
Theodore R. Smith
fonte
fonte
else if
propósito, nem todas as outras línguas usam . Por exemplo, o VB também usaElseIf
e Rubyelsif
.Respostas:
No manual do PHP :
Essencialmente, eles se comportarão da mesma forma, mas
else if
é tecnicamente equivalente a uma estrutura aninhada como esta:O manual também observa:
O que significa que, na forma normal da estrutura de controle (por exemplo, usando chaves):
ambos
elseif
ouelse if
pode ser utilizada. No entanto, se você usar a sintaxe alternativa , deverá usarelseif
:fonte
else if
comoelse { if {
.else if
comoelse { if {
, caso contrário não faria capaz de fazerif (0) { } else if (0) { } else { }
...if (0) { } else { if (0) { } else { } }
. Observe que não há ambiguidade no últimoelse
bloco, que é sempre o caso de ramificações completas (cadaif
uma possui umaelse
).if ($v1='1'): do_thing(); else: if($v1='b' ): do_another_thing(); else: do_smthing_else(); endif; endif;
é o equivalente de;if ($v1='1'): do_thing(); elseif($v1='b' ): do_another_thing(); else: do_smthing_else(); endif;
O Framework Interoperability Group (FIG), composto por membros que incluem os desenvolvedores do Zend ( https://github.com/php-fig/fig-standards#voting-members ), reúne uma série de recomendações padrão (PSR - #)
O Zend2 e o Symfony2 já seguem o PSR-0.
Não há regras rígidas e rápidas para estilos, mas você pode tentar seguir o máximo possível do PSR-2.
Há um comentário sobre else if vs elseif no PSR-2:
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#51-if-elseif-else
Algumas das recomendações são apenas isso, recomendações. Cabe a você optar por usar else if ou elseif
fonte