returnとは?
PHPのreturnは、関数やメソッドの処理結果を呼び出し元に返すためのキーワードです。
例えば、「計算機で2つの数を足し算して、その結果を画面に表示したい」という場面を考えてみましょう。
このとき、「足し算する部分」と「結果を表示する部分」を分けて考えると、足し算の結果を「どこかに渡す」必要がありますよね。
このように、関数内で計算や処理を行った後、その結果を外部で利用できるようにするのがreturnの役割です。
returnの基本的な特徴を挙げます。
returnの特徴
- 関数やメソッドの処理結果を呼び出し元に返すキーワード
- return文が実行されると、その時点で関数の処理は終了する
- 戻り値は数値、文字列、配列、オブジェクトなどさまざまなデータ型を指定できる
- return文を記述しない関数は、デフォルトでnullを返す
- 再利用可能で効率的なプログラムを作成できる
データベースからの情報取得、計算した結果の引き渡し、入力チェック結果の通知など、さまざまな場面で重要な役割を果たします。
基本構文
returnの使い方は、シンプルです。関数の中で「return 値;」と書いて使います。
returnを実行すると、関数内で計算や処理を行った結果を、関数を呼び出した場所に渡すことができます。戻り値には変数、計算式、固定値などが指定可能です。
まずは実際のコード例を見てみましょう。
出力結果
8
このプログラムでは、まずaddNumbersという名前の関数を作成しています。この関数は2つの引数($aと$b)を受け取ります。
return $a + $b;で2つの数を足し算し、その結果を呼び出し元に返しています。addNumbers(5, 3)で関数を呼び出すと、計算結果の8が$resultに代入されるという形です。
次は、文字列を返す例を見てみましょう。
出力結果
こんにちは、ネコさん
greetAnimal関数では、引数として受け取った動物の名前($name)を使ってあいさつ文を作成しています。
文字列の結合演算子(.)を使って「こんにちは、」と動物名と「さん」を繋げ、完成したあいさつ文をreturnで返しています。
このように、returnは数値だけでなく文字列も返すことができます。
実用例
ここからは、returnを使った8つのコード例を見ていきましょう。どの例も身近な動物を題材にしているので、イメージしやすくなっています。
そのプログラムは数値計算、配列操作、条件分岐、エラーハンドリングなど、実務でも活用するような処理です。
このような例を通じて、「関数で処理した結果を返して活用する」というreturnの基本的な使い方を覚えていきましょう。
returnを使いこなせるようになると、コードを部品のように分割して再利用できるようになり、保守性の高いプログラムを作れるようになります。
数値計算の戻り値
この例では、動物の年齢を人間の年齢に換算する関数を作成しています。
犬の年齢を7倍して人間の年齢相当を計算し、その結果をreturnで返します。計算処理の結果を戻り値として活用する基本的なパターンです。
出力結果
イヌの3歳は人間の21歳相当です
dogAgeToHuman関数では、犬の年齢($dog_age)を引数として受け取り、7倍して人間の年齢相当を計算しています。
$humanAge = $dogAge * 7;で計算を行い、その結果をreturn $humanAge;で呼び出し元に返します。
動物名を返す関数
指定された番号に対応する動物名を返す関数の例です。
記録アプリやクイズシステムでよく使われる、配列を使って複数のデータを管理し、インデックスに基づいて特定のデータを返却する方法です。
出力結果
選ばれた動物: ゾウ
getAnimalByNumber関数では、動物名の配列を作成し、引数として受け取った番号($number)をインデックスとして使用しています。
$animals[$number]で指定された位置の動物名を取得し、returnで返しています。この例では番号1を指定しているので、配列の1番目(2番目の要素)である「ゾウ」が返されます。
配列は0から始まるため、0を指定すると「ライオン」、1だと「ゾウ」となります。
配列データの返却
複数の動物の情報を配列として返す関数の例です。
データベースシステムやAPIでよく使われる、連想配列を使って動物の詳細情報を構造化し、まとめて返却する方法です。
出力結果
ネコはにゃーと鳴きます
getCatInfo関数では、連想配列を使って猫の情報をまとめています。
"name" => "ネコ"のように、キーと値のペアで情報を整理し、配列全体をreturnで返しています。
呼び出し側では$catInfo["name"]のようにキーを指定することで、必要な情報を取り出しているという形です。
ちなみに、連想配列とは数値のインデックスではなく文字列のキーを使って値にアクセスできる配列のことです。
通常の配列は $array[0], $array[1] のように数値でアクセスしますが、連想配列では $array['name'], $array['age'] のように文字列でアクセスできるという特徴があります。
連想配列を使うことで、データの意味が明確になり、コードが読みやすくなります。特にWebアプリケーション開発では必須の機能だといえます。
条件分岐による戻り値
動物の種類によって異なる鳴き声を返す関数です。if文を使った条件分岐により、入力値に応じて異なる戻り値を返す方法です。
出力結果
わんわん
animalSound関数では、引数として受け取った動物名($animal)を条件分岐で判定しています。
if ($animal === "イヌ")で犬の場合は「わんわん」を返し、elseif ($animal === "ネコ")で猫の場合は「にゃーにゃー」を返します。
どの条件にも当てはまらない場合は、最後のreturn "不明な鳴き声";が実行されます。
このように、複数のreturn文を使い分けることで、条件に応じた適切な値を返すことができます。
複数の動物情報を返す
動物園の動物リストを作成して返す関数の例です。
管理システムや一覧表示機能でよく使われる、foreachループで処理できる形で値を返す方法です。
出力結果
パンダ トラ クマ サル
get_zoo_animals関数では、動物園にいる動物の配列を作成し、その配列全体をreturnで返しています。
返された配列をforeachループで順番に処理し、各動物名を表示しているという形です。
このように、配列を返すことで柔軟にデータを活用できるようになります。
エラーハンドリング付きreturn
入力値の妥当性をチェックし、エラーの場合は適切なメッセージを返す関数です。
入力チェックシステムでよく使われるような、正常な場合とエラーの場合で異なる戻り値を返し、堅牢なプログラムを作成する方法です。
出力結果
エラー: 年齢は0以上である必要があります
ウサギの年齢: 2歳
validateAnimalAge関数では、まず入力値($age)が正しいかどうかをチェックしています。
if ($age < 0)で年齢が負の数の場合はエラーメッセージを返し、そうでなければ正常な結果を返します。
このように、異なる条件で異なる種類の値を返すことで、呼び出し側でエラー処理と正常処理を分けて対応できます。
関数の組み合わせ
一つの関数の戻り値を別の関数の引数として使用する例です。
モジュール設計やパイプライン処理でよく使われる、動物名を取得する関数と、その名前を使ってあいさつ文を作成する関数を組み合わせています。
出力(例)
フラミンゴがこんにちはと言っています
※実行ごとにどの動物が選ばれるかは変わります
getRandomAnimal関数では、動物の配列からランダムに1匹を選んで返します。array_rand()関数を使って配列からランダムなインデックスを取得しています。
createGreeting関数では、引数として受け取った動物名を使ってあいさつ文を作成します。
最後に、createGreeting(get_random_animal())で、最初の関数の戻り値を直接2番目の関数の引数として使用しているような形です。
入れ子になった関数の呼び出しをしている形で少し複雑ですが、全体として何をしているかしっかりと理解しておきましょう。
オブジェクト返却の例
動物の情報をオブジェクト形式で返す関数の例です。
オブジェクト指向システムやデータモデリングでよく使われる、stdClassを使って動物の属性を構造化し、オブジェクトとして返す方法です。
出力結果
ポチはイヌです
createAnimalObject関数により、new stdClass()で新しいオブジェクトを作成しています。
$animal->name = $name;のように、オブジェクトのプロパティに値を設定し、完成したオブジェクトをreturnで返します。
呼び出し側では、$myPet->nameのようにプロパティにアクセスして、オブジェクトの情報を取得できます。
オブジェクトを使うと、関連する複数の情報をまとめて管理できるという利点があります。returnの特性と組み合わせて有効に活用できるようになりましょう。
まとめ
PHPのreturnは関数プログラミングの核となる重要な機能です。
この記事では、returnの基本的な構文から実用的な応用例まで解説しました。returnの活用場面について確認しておきましょう。
returnが活躍する場面
- データベースから取得した情報を呼び出し元に渡したいとき
- 計算した結果や入力チェックの結果を関数外で利用したいとき
- APIのレスポンス生成や外部システムとの連携処理が必要なとき
- 複数の関数を組み合わせた複雑な処理を実装したいとき
returnを使う上で押さえておきたいポイントは次の通りです。
重要なポイント
- return文は関数の処理を即座に終了させる
- 戻り値の型は数値、文字列、配列、オブジェクトなどさまざまなデータ型を指定できる
- 適切なエラーハンドリングと組み合わせて堅牢なプログラムが組める
初めてPHPを学ぶ方も、この記事で紹介したreturnの基本的な使い方と8つの実用例を参考に、コードを書いてみてください。
関数から適切に値を返せるようになれば、コードを部品として再利用できるようになります。これは保守性の高いプログラムを作ることができるという大きなメリットです。
ぜひreturnを正しく理解し活用することで、より実用的で効率的なPHPプログラムを作成できるようになりましょう。