動画の最後に、return を書いた時点で値が戻されるため、
それ以降の処理は無視されるとありました。
そこで、次のように return の前にメッセージを書き、
function sum($a, $b, $c )
{
echo 'here' . PHP_EOL;
return $a + $b + $c;
}
echo sum (100, 200, 300) + sum(300, 400, 500) . PHP_EOL;
これで実行結果を確認したところ、
here
here
1800
となりました。
ここで疑問なのですが、なぜ
here
600+here
1200
または
here
1800here
とならないのでしょうか?
まず、sum(100, 200, 300) で処理を呼び出すので、ここまでで
here
600
となり、次に sum(300, 400 ,500) で再び処理を呼び出すので、
here
600+here
1200
になるのかなと思っていました。
そうなると、2 行目は 数値 + 文字列になってしまうので、そのまま表示されるか、
先に出てきた数値 600 にあとから出てきた数値 1200 が足され 1800 となり、
$a + $b + $c のあとには PHP_EOL; がないので、改行されずに 2 つめの here が来るのかな
と予想ていたのですが…
実行結果の順番が、なぜ上のようになっていたのか、教えて頂けるとありがたいです。
よろしくお願いします。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?