4

重複の可能性:
関数の終了点が 1 つだけである必要があるのはなぜですか?

CS の学生として、関数の終了点は最後に 1 つだけであるべきだということを頭に叩きつけられました。

例えば。これ:

function foo()
{

    //do stuff here

    if($bar)
    {
         $out = FALSE;
    }
    else
    {
         $out = TRUE;
    }
    return $out;
}

いいえ:

function foo()
{

    //do stuff here

    if($bar)
    {
         return FALSE;
    }
    return TRUE;
}

しかし、この 2 番目のタイプの終了は、PHP の他の人々のコードや、一部のフレームワーク (私が最近使用している Kohana など) のコア コードでさえも頻繁に使用されているのを見てきました。関数を終了するこの方法は、PHP標準で問題ないと考えられていますか?

編集: 1 つの出口点を持つ関数でいくつかの問題を追跡する方が簡単な場合があるため、そうしないように言われた理由を理解できます。また、他の問題がより適切に解決または追跡されているため、それを許可する必要がある理由を理解できる場合もあります。複数の出口点を持つ機能。

編集2:人々を幸せにするために、コード例に「ここで何かをする」コメントを追加しました

4

3 に答える 3

2

それは、1 の 6、または別の 6 分の 1 です。幸福は一貫性の中にあります。

于 2012-06-04T16:50:56.540 に答える
2

$out宣言してもう 1 つの変数を存在させる必要があるため、私は常に後者のルートを使用してきました。しかし、振り返ってみると、これは単なるブール値であり、害はありません。コードのコンテキストによっては、最初のルートがよりきれいに見える場合があります。

すべては一貫性にかかっています。ルート 1 またはルート 2 をいつ使用するかを決定するシステムがある限り、うまくいっています。

于 2012-06-04T16:49:31.057 に答える
2

私は(良い)コードが両方の方法で値を返すのを見てきました。一貫して 1 つの方法を使用するフレームワーク/コードベースを使用している場合は、それに従います。それ以外の場合は、快適に使用できるものを使用してください。:D

于 2012-06-04T16:52:46.430 に答える