関数には、引数で値渡す以外にも、
関数の呼び出し元に、関数本体から値を返す
という機能を付けることもできます。
関数から返される情報(値)を、戻り値(return value)といい、
複数指定できる引数とは違い、戻り値は1つだけで、呼び出し元に
値を返すことに注意指定下さい。
以下のように書きます。
function 関数名(引数){
処理;
return 式;
}
上記では、ブロック最後にreturn文を書いていますが、
関数のブロックの中ほどに書いてあったも、return文が処理された箇所で、
関数処理が終了し、呼び出し元に処理が戻ります。
戻り値を使い、関数から値を受け取ることができる。
サンプルコードの実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="../style.css"> </head> <body> <?php $food = "りんご"; $price = 100; $num = 5; //関数呼び出して、も戻り値を$totalに代入 $total = buy($food,$price,$num); echo "合計:" . $total . "円です。<br>"; function buy($f,$p,$n){ echo "<br><hr>"; echo "食品:{$f} {$p}円を{$n}個お買い上げ<br>"; echo "<br><hr>"; //価格 * 個数 の積を戻り値として返す return $p * $n; } ?> </body> </html> |
関数内で計算された結果の戻り値を、呼び出し元の$totalという変数に
代入しています。戻り値を利用するには、関数の呼び出し分から、、
代入演算子を使います。
$total = buy($food,$price,$num);
ちなみに、関数の戻り値を利用しない場合は、
以下のように書いても大丈夫です。
buy($food,$price,$num);
関数の呼び出し元に情報(値)を返すには、
戻り値を使う。
戻り値がない関数
引数がない関数を定義したように、
戻り値がない関数も定義することができます。
以前のサンプルコードで書いたmsg()も戻り値を持たない関数です。
function msg(){
echo "お買い上げ有難うございます。
";
}
戻り値がない関数が呼び出されて処理された場合には、
ブロック処理が終了する「}」までいくか、
下記のように書いて終わらせます。
return;