0

値が 50 または値が 25 の整数を返したいと考えています。これはこれを行う正しい方法ですか、それとも50 と 25 を返すだけでなく、変数を作成して変数を返す$temp1=50必要があります。$temp2=25

function somefunction($length)
{

    if ($length > 50) 
    {
        return 50;
    } else {
        return 25;
    }
}

重複した場合は申し訳ありませんが、私は見ました。

4

6 に答える 6

3

あなたのやり方でまったく問題ありません。変数に値を割り当てるだけreturnでは意味がありません。
代わりのより良いバージョンとして、最終的に変数を返す必要があるいくつかのより複雑なケースでは、提案したように 2 つではなく 1 つの変数のみを使用できます。もっと似たもの

function somefunction($length)
{
    $myVar = 0;

    if ($length > 50) {
        $myVar = 50;
    } 
    else {
        $myVar = 25;
    }

    return $myVar;
}
于 2012-11-10T08:25:28.967 に答える
3

事前に変数を割り当てる必要はありません。書くだけ

return ($length > 50 ? 50 : 25);
于 2012-11-10T08:27:01.540 に答える
2

戻る前に変数に代入しても意味がありません。あなたはを返しています。はそれ自体で完全に適切な値であり、返される前に変数50に割り当てる必要はありません。

言い換えれば、あなたはすでにそれを正しく行っています。

于 2012-11-10T08:25:36.847 に答える
0

関数の問題は、戻り値ではなく入力です。

とにかく、あなたの質問は少し理論的です。定数整数値と変数の両方を返すことが機能するためです。それは大した違いにはならないでしょう。次の例を参照してください。

function somefunction($length)
{
    return 25 + 25 * ($length > 50);
}

コードの問題は、これらの特定の値に対してのみコードを記述していることです。したがって、変数を使用しないことは、コードが制限されていることを示している可能性があります。しかし、リターンのために少なく、フローのために多くなります。

function integer_top_cut_drop($value, $top, $default)
{
    $value   = (int) $value;
    $top     = (int) $top;
    $default = (int) $default;

    if ($value > $top) 
    {
        return $top;
    }

    return $default;
}

この関数が示すように、そこには数値はなく、変数のみがあります。既存の関数とほぼ同じですが、すべてが可変です。定数値を持つ数値は削除され、パラメーターとして渡されるようになりました。

function somefunction($length)
{
    return integer_top_cut_drop($length, 50, 25);
}

したがって、通常、変数、定数、その他の種類の式、または別の関数が値を返すかどうかを気にする必要はありません。

さらに重要なのは、コードが実行する必要があることを実行し、便利な方法で実行することです。

これは、コード内で、関数がすでに完全に正常であることを意味している可能性があります。

ただし、ここに示すように、新しい関数を使用して、一般的なパーツを再利用できるようにすることを検討してください。それはあなたの例では少し上にあるかもしれませんが、単に絵を示すためです。

関数はロジックを保持できるため、その部分を複数回記述する必要はありません。また、その関数を使用して、コードの他の部分のサイズを縮小します。

于 2012-11-10T09:19:49.673 に答える
0

これを行う正しい方法はありません。

この質問はスタイルと好みに関するものであり、決定的な答えを得ることができません. 一番好きなものを
使用してください(もちろん、チームで作業している場合は除きます。その場合は、チームのコーディング スタイル ガイドを調整する必要があります)。

于 2012-11-10T10:48:51.963 に答える
0

それはあなたが何をしたいかによって異なります:

定数を返したいだけの場合、またはこの定数をパラメーター化したい場合。

定数の場合、読みやすくするために、次の名前を付けることができます。

define('RETURN_CONSTANT_SUP',50);
define('RETURN_CONSTANT_INF',25);

function somefunction($length)
{

if ($length > RETURN_CONSTANT_SUP) 
{
    return RETURN_CONSTANT_SUP;
} else {
    return RETURN_CONSTANT_INF;
}
}

したがって、正しい方法で行うと、いつかそれらの値を再利用したい場合に定数を使用できます。

于 2012-11-10T08:28:27.913 に答える