2016-09-29 18 views
-2

を返さないながら、私たちは関数の最後にリターンを使うのはなぜ私たちは関数の最後にリターンを使用する必要がなぜ私は、return文について混乱しています、例えば任意の値

function test($a){blah; 
        blahh ; 
        blahhh; 
        blahhhhh; 
        return;} 

何ここリターンの使用?機能は、自動的にすべてのステートメントが実行されたときに、私はここではリターンのない使用がないと思うが、http://www.w3resource.com/php/statement/return.phpからこの写真は(私たちは任意の値を返さないとき)enter image description here

だから 誰かがリターンの使用を説明していただけます私は混乱して作る終了します。

+2

上記の返り値は関数から外れます – Neat

+0

あなたのデザインと関数が何をしているかによって、結果を 'echo'したくないです。 –

+1

@ᵈˑᵈˑ-return文はecho文の後ろにあるので、それを防ぐことはできません。 – Quentin

答えて

1

その意味では:あなたはそうではありません。

returnは機能から外れますが、その関数の最後のステートメントであるため、ステートメントがなくても途切れることになります。

returnは、引数を呼び出し側に返しますが、引数を持たないため、何も渡されません。

これは何もしません。


あなたが遭遇するすべてのコードには、パープルがあると想定しないでください。それは、何か他のもの(意味を与えたもの)が削除されたコードの古いバージョンから残されるかもしれません。それは誰かが貨物を栽培することによって書かれるかもしれない。将来の開発のためのプレースホルダかもしれません。

1

関数が値を返す場合に便利です。

ので

Function FavouritePie($who) { 

    switch($who) { 
       case 'John': 
        return 'apple'; 

       case 'Peter': 
        return 'Rhubarb'; 
        } 
} 

すなわち、以下を考慮:

$WhatPie = FavouritePie('John'); 

echo $WhatPie; 

が本当に単純な形式で apple

を与えるだろうあなたは関数が何かを返したい場合、それは便利です、それを処理して何かを返す。リターンがなければ、デッドエンドの機能を実行するだけです。

さらにいくつかの読書: http://php.net/manual/en/function.return.php

http://php.net/manual/en/functions.returning-values.php

を質問は私が、それのためにreturnを追加する必要がありますか」に帰着するならば、その答えに固有のいくつかの詳細なコンテキストを追加するには関数の終わり、その後、答えはノーである。しかし、それは正しい答えはあなたのreturnを除外することは常にあるわけではありません。

それはあなたが$aで何をしたいかによって決まる。

echo $aが関数内にある場合、その関数は呼び出されるとすぐに$aを吐き出します。 return $aの場合、testの呼び出しを変数(つまり$something = $test('foo'))に設定したと仮定すると、後で使用できます。

2

これは達成しようとしていることによって異なります。

echoを複数の場所に書き込むと、コードが混乱することがあります。一般に、値を返す関数は、呼び出し側がその値をさらに操作するか、即座に印刷するかを決定できるため、より汎用性があります。

慣例に従い、機能にはreturnを使用することをおすすめします。

GuardClauseをチェックしてください。

例:

function test() { 
    return 10; 
} 

$a = test(); // $a stores the value 10 

echo $a; // Prints 10 
echo $a + 5; // We may want to manipulate the value returned by the function. So, it prints 15. 

さらに参考のために、チェックWhat is the difference between PHP echo and PHP return in plain English?

1

"復帰" は、他のコードからこの関数を呼び出すために計画するとき、それはあなたを助けに重要である:

  1. 機能が正しく動作するかどうかを確認します。
  2. 関数から値を取得します。
  3. 返品後に他のコードが実行されていないことを確認してください。

コードがサンプルのように単純な場合は、無意味かもしれませんが、もっと複雑にしましょう。

function test($a){ 
    if(file_exists($a)){ 
     if(is_file($a)){ 
      return $a." IS A FILE\n"; 
     } else if(is_dir($a)) { 
      return $a." IS A DIR\n"; 
     } else { 
      return $a." EXISTS, BUT I DONT KNOW WHAT IT IS\n" 
     } 
    } else { 
     return $a." NOT EXISTS\n"; 
    } 
    return 0; 
} 


$filecheck = test("/abc/def.txt"); 
if($filecheck){ 
    echo $filecheck; 
} else { 
    echo "unknown error"; 
} 

上記の値を返す方法と基本的な操作を行います。 あなたの関数にreturnを実装して、関数のエラーコードを参照用に指定することもできます。

あなたの例に基づいて、私は以下のように少し変更します:

function test($a){ 
    blah; 
    blahh; 
    blahhh; 
    blahhhhh; 
    return 1; 
} 

だから私は、コードは最後の行に実行されている知っています。 それ以外の場合は、関数はサイレントモードで終了します。