1

たとえば、私がこの関数を持っているとしましょう。

function isValid($premise){
    if($premise == 'foo')
    {
        return true;
    }

    return false;
}

ご覧のとおり、elseステートメントが省略されています。そうでない場合は、直後にreturnステートメントが続きます。なぜ一部の人はそれらを省略しますか?それは悪いプログラミング慣行ですか?

4

3 に答える 3

6

欠落の有無にかかわらず、同じコードが生成されelseます。スタイルと好みの問題です。

個人的には、長い関数の開始時に特定の条件をチェックするときにelse onlyを省略する傾向があります。

私はそれを悪い習慣とは考えていません。コードがより明確になる状況があります。

于 2012-07-10T04:47:06.517 に答える
3

どちらの場合も動作と実行時間はまったく同じです。これは純粋にスタイル上の選択です。

どのスタイルが優れているかについてさらに議論するには、programmers.stackexchange.comを試してみてください。

于 2012-07-10T04:46:55.870 に答える
1

return は関数を終了/中断するためです。

条件が実行された場合if、true を返すことによって関数を終了するとします。if実行しない場合は、false を返し続けます。

あなたのコードで

function isValid($premise){
    if($premise == 'foo')
    {
        return true;//terminated the function and no more function is going to run
    }

    return false;//if it is running then it is very clear that if condition has not run because if it would have run then the if condition didn't run    }
于 2012-07-10T04:47:12.460 に答える