Есть elseif
и else if
полностью синонимами, или есть разница?
Есть ли у Zend принятый «стандарт», по которому можно использовать?
Хотя мне лично не нравится видеть elseif
в коде, мне просто нужно знать, являются ли они синонимами, и руководство по PHP не самое простое для поиска.
php
syntax
conditional-statements
Теодор Р. Смит
источник
источник
else if
Кстати, не каждый другой язык использует . Например, VB также используетElseIf
и Ruby используетelsif
.Ответы:
Из руководства по PHP :
По сути, они будут вести себя одинаково, но
else if
технически эквивалентны вложенной структуре:В руководстве также отмечаются:
Это означает, что в обычной форме структуры управления (т.е. с использованием фигурных скобок):
либо ,
elseif
илиelse if
могут быть использованы. Однако, если вы используете альтернативный синтаксис , вы должны использоватьelseif
:источник
else if
какelse { if {
.else if
какelse { if {
, иначе вы не смогли бы сделатьif (0) { } else if (0) { } else { }
...if (0) { } else { if (0) { } else { } }
. Обратите внимание, что в последнемelse
блоке нет двусмысленности , которая всегда имеет место для полных ветвей (у каждогоif
естьelse
).if ($v1='1'): do_thing(); else: if($v1='b' ): do_another_thing(); else: do_smthing_else(); endif; endif;
это эквивалент;if ($v1='1'): do_thing(); elseif($v1='b' ): do_another_thing(); else: do_smthing_else(); endif;
Framework Interoperability Group (FIG), которая состоит из членов, которые включают разработчиков Zend ( https://github.com/php-fig/fig-standards#voting-members ), составила ряд Стандартных рекомендаций (PSR). - #).
Zend2 и Symfony2 уже следуют PSR-0.
Не существует жестких и быстрых правил для стилей, но вы можете попробовать и следовать как можно большему количеству PSR-2.
Существует комментарий на else, если vs elseif в PSR-2:
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#51-if-elseif-else
Некоторые из рекомендаций - это просто рекомендации. Вам решать, использовать ли else, если или elseif
источник