【PHP】Lesson3-3:関数の戻り値を理解しよう

一つ前のレッスンでは 関数の定義と呼出し について学習しました。
今回は 関数の戻り値 について見ていきましょう。
Lesson1:基礎文法編
Lesson2:制御構造編
Lesson3:関数編
・Lesson3-1:組み込み関数を理解しよう
・Lesson3-2:関数の基本を理解しよう
・Lesson3-3:関数の戻り値を理解しよう ◁今回はココ
・Lesson3-4:デフォルト引数とキーワード引数を理解しよう
・Lesson3-5:関数の型付けを理解しよう
・Lesson3-6:無名関数とアロー関数を理解しよう
・Lesson3-7:スコープを理解しよう
・確認問題3-1:石取りゲームを作ろう
・確認問題3-2:丁半賭博ゲームを作ろう
・確認問題3-3:モンスターとのバトルゲームを作ろう
Lesson4:データ構造編
Lesson5:クラス編
PHP関数の戻り値とreturn文の使い方を徹底解説
PHPのプログラミングでは「関数の戻り値」を理解することがとても重要です。
return文を使って関数から値を返す方法をマスターすると、計算結果や判定結果を自由に使い回せるようになり、より効率的で分かりやすいコードを書くことができるようになります。
この記事では、PHPにおける関数の戻り値の基本から、return文の使い方やよくある例、実践的なポイントまでをやさしく解説します。
この記事を読むことで、PHPの関数がもっと身近になり、プログラム作りがぐっと楽しくなるはずです。
さっそく本文で一緒に学んでいきましょう!

関数の戻り値とは何か?|基本構文とreturnの役割
関数の戻り値 とは関数の中で計算や処理を行った結果を呼び出し元に返す仕組みです。
戻り値を利用することで、関数が計算結果や状態を他のコードに渡し、その値を後続の処理に活用できます。
例えば数値の計算結果や文字列操作の結果を戻すことが一般的です。
PHPで戻り値を指定するには、return文 を使用します。return文は関数の処理を終了し、その後に続くコードは実行されません。
基本構文は以下の通りです。
<?php
function 関数名(仮引数) { // 仮引数を引き取る新規関数の定義
return 戻り値; // 処理結果を戻り値として返す
}
$変数 = 関数名(実引数); // 関数を呼び出し、その戻り値を変数に代入
echo $変数; // 戻り値を出力returnの後に値や変数を書くことで、その値を関数外に返します。- 関数内で
returnが実行されると、関数はその時点で終了します。
関数の戻り値の使用例|returnで処理結果を返す
関数の戻り値を使用する例を3つ紹介します。
戻り値で数値を返す関数の例
計算結果を戻り値として利用する例です。
<?php
function multiply($a, $b) {
return $a * $b; // 掛け算の結果を返す
}
$result = multiply(4, 5);
echo "4 × 5 = " . $result . PHP_EOL; // 20 と出力if文で分岐した戻り値の例
条件分岐を利用して、異なる戻り値を返す例です。
<?php
function checkEvenOrOdd($number) {
if ($number % 2 === 0) { // もし引数$numberが偶数なら
return "偶数"; // 戻り値として文字列"偶数"を返す
} else { // もし偶数でないなら
return "奇数"; // 戻り値として文字列"奇数"を返す
}
}
echo checkEvenOrOdd(7) . PHP_EOL; // 奇数 と出力文字列を加工して戻り値として返す関数
文字列を加工して返す例です。
<?php
function greet($name) {
return "こんにちは、" . $name . "さん!"; // メッセージを返す
}
echo greet("太郎") . PHP_EOL; // こんにちは、太郎さん! と出力まとめ|関数の戻り値を活用してコードを効率化しよう
この記事では、PHPの関数における「戻り値」とreturn文の基本構文、そして実際の使用例を通して、値の返し方や活用方法を学びました。
今回の内容を身につけることで、関数の結果を柔軟に活用できるようになり、プログラム全体の設計や再利用性がぐっと高まります。
これからも一歩ずつスキルを積み上げて、実践的なプログラミング力を身につけていきましょう!
演習問題|関数の戻り値で合計値と偶奇を判定するコードを作ろう

ユーザーから2つの整数を入力し、その合計を計算するプログラムを作成しましょう。
さらに計算結果が偶数か奇数かを判定して結果を表示します。
関数を使って処理を分け、戻り値を活用して結果を取得する方法を学びます。
この演習の要件
以下の要件に従ってコードを完成させてください。
- 以下の2つの関数を作成すること。
calculateSum($a, $b):2つの引数を受け取り、その合計を戻り値として返す関数。checkEvenOrOdd($number):1つの引数を受け取り、その値が偶数か奇数かを判定して結果を文字列として返す関数。
- ユーザーから2つの整数を標準入力で受け取ること。
- 入力された整数の合計を計算し、その結果を画面に表示すること。
- 合計値が偶数か奇数かを判定し、その結果を画面に表示すること。
ただし、以下のような実行結果となること。
1つ目の数字を入力してください。 8 2つ目の数字を入力してください。 3 入力された2つの数字の合計は: 11 です。 合計値は 奇数 です。
解き方のヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
- ヒント1【コードの構成を見る】
-
正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)1:数値の合計を計算する関数
calculateSumを定義
□ 引数$aと$bを受け取り、合計値を計算して返す
2:偶数か奇数かを判定する関数checkEvenOrOddを定義
□ 引数$numberを受け取り、偶数なら”偶数”、奇数なら”奇数”の文字列を返す
3:「1つ目の数字を入力してください。」と出力
4:標準入力から値を取得し、整数型に変換して変数$firstNumberに代入
5:「2つ目の数字を入力してください。」と出力
6:標準入力から値を取得し、整数型に変換して変数$secondNumberに代入
7:関数calculateSumを呼び出し、$firstNumberと$secondNumberの合計を計算し、変数$sumに代入
8:「入力された2つの数字の合計は: 」と$sumの値を出力
9:関数checkEvenOrOddを呼び出し、合計値$sumが偶数か奇数かを判定し、結果を変数$resultに代入
10:「合計値は 」と$resultの値を出力
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
<?php // 数値の合計を計算する関数 function calculateSum($a, $b) { /* 【穴埋め問題1】 ここに、$aと$bの合計を計算し、その結果を戻り値として返すコードを書いてください。 */ } // 偶数か奇数かを判定する関数 function checkEvenOrOdd($number) { /* 【穴埋め問題2】 ここに、$numberが偶数の場合は"偶数"、奇数の場合は"奇数"と返すコードを書いてください。 */ } // メイン処理 echo "1つ目の数字を入力してください。" . PHP_EOL; // 標準入力でユーザーから1つ目の数字を取得する $firstNumber = (int)fgets(STDIN); echo "2つ目の数字を入力してください。" . PHP_EOL; // 標準入力でユーザーから2つ目の数字を取得する $secondNumber = (int)fgets(STDIN); // 合計を計算する関数を呼び出し、その結果を取得 /* 【穴埋め問題3】 ここにcalculateSum関数を呼び出して合計を計算し、その結果を$sumに代入するコードを書いてください。 */ echo "入力された2つの数字の合計は: " . $sum . " です。" . PHP_EOL; // 偶数・奇数判定の関数を呼び出し、その結果を取得 /* 【穴埋め問題4】 ここにcheckEvenOrOdd関数を呼び出して合計値の偶数・奇数を判定し、その結果を$resultに代入するコードを書いてください。 */ echo "合計値は " . $result . " です。" . PHP_EOL;
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
演習問題の答え合わせ
この問題の正解コードとその解説は以下の通りです。
クリックして開いて確認してください。
- 正解コード
-
<?php // 数値の合計を計算する関数 function calculateSum($a, $b) { // $a と $b の合計を計算し、その結果を戻り値として返す return $a + $b; } // 偶数か奇数かを判定する関数 function checkEvenOrOdd($number) { // 数字が偶数か奇数かを判定し、結果を文字列として返す if ($number % 2 === 0) { return "偶数"; } else { return "奇数"; } } // メイン処理 echo "1つ目の数字を入力してください。" . PHP_EOL; // 標準入力でユーザーから1つ目の数字を取得する $firstNumber = (int)fgets(STDIN); echo "2つ目の数字を入力してください。" . PHP_EOL; // 標準入力でユーザーから2つ目の数字を取得する $secondNumber = (int)fgets(STDIN); // 合計を計算する関数を呼び出し、その結果を取得 $sum = calculateSum($firstNumber, $secondNumber); echo "入力された2つの数字の合計は: " . $sum . " です。" . PHP_EOL; // 偶数・奇数判定の関数を呼び出し、その結果を取得 $result = checkEvenOrOdd($sum); echo "合計値は " . $result . " です。" . PHP_EOL;
- 正解コードの解説
-
コードをブロックごとに分割して解説します。
合計を計算する関数
function calculateSum($a, $b) { return $a + $b; }function: 新しい関数を定義するキーワードです。calculateSumは関数の名前です。- 引数
$a, $b: 関数に渡される値です。この関数では2つの引数(整数)を受け取り、その合計を計算します。 return: このキーワードは関数の結果を呼び出し元に返します。ここでは$a + $bの計算結果を返しています。
偶数か奇数かを判定する関数
function checkEvenOrOdd($number) { if ($number % 2 === 0) { return "偶数"; } else { return "奇数"; } }if文: 条件を満たす場合に特定の処理を実行する構文です。%演算子: 剰余(余り)を計算します。$number % 2が0であれば偶数、そうでなければ奇数です。- 文字列を返す戻り値: この関数では「偶数」または「奇数」という文字列を戻り値として返しています。
標準入力でユーザーからデータを受け取る
$firstNumber = (int)fgets(STDIN);
fgets(STDIN): ユーザーから入力を受け取るための関数です。- 型キャスト
(int): 入力は文字列として扱われるため、整数型に変換しています。
合計を計算する
$sum = calculateSum($firstNumber, $secondNumber); echo "入力された2つの数字の合計は: " . $sum . " です。" . PHP_EOL;
- 関数の呼び出し:
calculateSumを呼び出し、戻り値(合計値)を$sumに代入しています。 echo: 計算結果を画面に表示します。- 文字列の連結: ドット演算子(
.)を使って、文字列と変数を結合しています。
偶数・奇数を判定する
$result = checkEvenOrOdd($sum); echo "合計値は " . $result . " です。" . PHP_EOL;
- 関数の呼び出し:
checkEvenOrOddを呼び出し、戻り値(偶数または奇数)を$resultに代入しています。 - 表示: 判定結果を画面に表示します。


