1

私はphpの初心者であり、phpで値を返すことの意味を理解するのに苦労しました。これまでのところ、私はそれを次のように理解しています。値を返すと、それが関数が保持する最終的な値になり、関数に値を返した後(および関数が終了する前)に発生するすべてのスクリプトが終了します。

私が印刷している最初のスクリプトは、本から見たものです。最初のスクリプトを2番目のスクリプトとして書き直すことができると思いましたが、スクリプト間に違いは見られません。

値を返すという私の理解と、次の2つのスクリプトがまったく同じであるという私の考えのどちらかについて間違っていますか?私は値を返すことについてできる限り読み込もうとしましたが、それを十分に明確に説明しているようには見えませんでした。値を返さなければならない理由と、#1ではなくスクリプト#2を使用しない理由を正確に理解したいと思います。よろしくお願いします。ありがとうございました。

スクリプト1:

function addNums($firstnum, $secondnum){
    $result= $firstnum + $secondnum;
    return $result;
}
echo addNums(3,5);

スクリプト2:

function addNums($firstnum, $secondnum){
    return $result= $firstnum + $secondnum;
}
echo addNums(3,5);
4

4 に答える 4

5

より良いアプローチは

function addNums($firstnum, $secondnum){
    return  $firstnum + $secondnum;
}
于 2013-03-21T15:00:54.833 に答える
3

私はこれが好きだと思います

function addNums() {
    return array_sum(func_get_args());
}

またはそれでも使用する方が良いbc_maths

function addNums() {
    return array_reduce(func_get_args(), function ($a, $b) {
        return bcadd($a, $b);
    });
}
于 2013-03-21T15:01:58.500 に答える
3

ベストプラクティスからコーディングの旅を始めることをお勧めします。

優先順位について明確にします。

つまり、括弧を自由に使用します。それらは、必要な操作の順序を明確にするのに役立つ可能性があり、害を及ぼすことはありません。

それ以外の:

return $result= $firstnum + $secondnum;

あなたは使用したいかもしれません:

return ($firstnum + $secondnum); // The $result = is just unnecessary complication

、戻り行に複雑な式を入力するときに括弧を使用します。これは、ここにある場合は実際には必要ありませんが、将来の問題を回避するのに役立つ可能性があります。

これは、数学を明確にするためにかっこに頼りたいというより良いケースです。

return (($firstnum + $secondnum) / (4 - $thirdnum)); // or more complicated

したがって、基本的に、returnステートメントが複雑になるほど、より多くの括弧が友達になります(オペレーターが完全にダウンするまで)。

しかしそれ以外は、リターンラインに式を入れることはすべてうまくいきます。その際に遭遇する問題の1つは、結果変数を使用する場合と同じように、最終的な戻り値を簡単にデバッグできないことです。

var_dump($result); // Can't echo out/var_dump the variable unless you've a temp variable to output
return $result;

しかし一方で、それがテスト駆動設計であり、期待する結果が得られることを確認するためのテストの作成です。

于 2013-03-21T15:04:14.743 に答える
0

2番目のスクリプトは、次の行に沿っている必要があります。

function addNums($firstnum, $secondnum){
    return ($firstnum + $secondnum);
}
echo addNums(3,5);
于 2013-03-21T15:00:56.843 に答える