12

PHPのelseifブロックの最後のelseステートメントを省略しても大丈夫ですか。このコードは大丈夫ですか

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

またはそれは最後に他のものを持っているべきですか?

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

確かにそうだと思いますが、どこでも確認できません。編集-私はそれを試しました、そしてそれはうまくいきます、しかし私はただ確かめたいです。

4

2 に答える 2

20

最後のブロックが必要ない場合は、else書かないでください。必要のないコードのブロック(おそらく-commentだけを含むthis is useless)があるのは無意味です。

于 2012-08-02T21:27:52.973 に答える
5

@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ますが、どちらの方法でも問題ありません。3番目のケースを完全に除外することは、バグの一般的な原因であることに注意してください(場合によっては、セキュリティホールさえも)。

于 2012-08-02T21:59:27.290 に答える