В PHP, elseif нуждается в последнем заявлении else?

Можно ли оставить заключительную инструкцию else в блоке elseif в PHP. Является ли этот код ОК

if ( condition ):
   // code
elseif ( othercondition ):
   // more code
endif;

или он должен иметь еще в конце?

if ( condition ):
   // code
elseif ( othercondition ):
   // more code
else
   // more code
endif;

Я уверен, что это должно быть, но я не могу его подтвердить нигде. Изменить - я пробовал, и он работает, но я просто хочу быть уверенным.

Ответ 1

если вам не нужен последний else -block, не пишите. просто бессмысленно иметь блок кода (возможно, содержащий только this is useless -комментарий), который не нужен.

Ответ 2

В то время как ответ @oezi на 100% правильный, я бы также добавил, что в отношении наилучшей практики условие else должно использоваться во всех случаях. Это не означает, что вам нужно использовать блок else буквально, поскольку вы можете сделать то же самое логически, поставив свой "код else" перед if. Например:

$foo = 'baz';

if (...) {
    $foo = 'foo';
} else if (...) {
    $foo = 'bar';
}

... функционально эквивалентен:

if (...) {
    $foo = 'foo';
} else if (...) {
    $foo = 'bar';
} else {
    $foo = 'baz';
}

Я бы сказал, что использование else более понятно при чтении кода, но в любом случае все в порядке. Просто помните, что исключение третьего случая вообще является общей причиной ошибок (а в некоторых случаях и для безопасности).