動画の最後に、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
が来るのかな
と予想ていたのですが…
実行結果の順番が、なぜ上のようになっていたのか、教えて頂けるとありがたいです。
よろしくお願いします。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?