なぜ、return をする必要があるのでしょうか?
return しなくとも、$sum;の数字は変わらないですよね?
returnしないと関数はNULLを返します。
せっかくコードを書いているのですから、
returnする場合としない場合のそれぞれを実行してみましょう。
php
1function getSum($num1, $num2){
2 $sum = $num1 + $num2;
3 return $sum;
4}
5
6$sum = getSum(2, 5);
7var_dump($sum); // 7が表示されます。
php
1function getSum($num1, $num2){
2 $sum = $num1 + $num2;
3}
4
5$sum = getSum(2, 5);
6var_dump($sum); // NULLが表示されます。
関数内で書かれた変数は、通常関数の外では値を参照できません。
関数外でも関数内の変数を参照したい場合はglobal宣言をします。
ただし、これは不具合の原因になりやすいので、基本的には悪手です。
php
1function getSum($num1, $num2){
2 global $sum;
3 $sum = $num1 + $num2;
4}
5
6getSum(2,5);
7var_dump($sum); // 関数内で変数に代入された7が表示されます。
8
9$sum = getSum(2, 5);
10var_dump($sum); // この場合も関数の返り値はNULLのため、NULLが表示されます。
そもそもの使い方も含めアドバイスを頂けないでしょうか。
今回例示されたgetSumの場合、
$sum = getSum(2, 5);
としても
$sum = 2 + 5;
としても結果が同じになるのであまり恩恵を感じないかもしれません。
例えば消費税の計算をプログラム内でするとしましょう。
php
1$tax1 = 100 * 0.1;
2$tax2 = 200 * 0.1;
3$tax3 = 300 * 0.1;
4$tax4 = 400 * 0.1;
5$tax5 = 500 * 0.1;
もし消費税率が10%から5%に変更された場合、
0.1と書いた5か所を0.05に変更する必要があります。
これが関数を利用した場合はどうでしょうか。
php
1function calcTax($num){
2 return $num * 0.1;
3}
4$tax1 = calcTax(100);
5$tax2 = calcTax(200);
6$tax3 = calcTax(300);
7$tax4 = calcTax(400);
8$tax5 = calcTax(500);
消費税が10%から5%に変更された場合でも、
プログラムは関数内の0.1を1か所変更するだけで済みます。
消費税の計算が今回の例のように固まっておらず、
プログラム内のあちこちで行われていた場合に書き換え漏れをなくせます。
関数を使えば同じ処理を使い回す場合に、変更に強くなります。