初心者向け。PHPでのreturn(戻り値)の使い方
1517 回閲覧されました
みなさんこんにちは、jonioです。
初めてPHPを勉強した時に「return」と「echo」の使い分けが全く分かりませんでした。
何となく表示する時に使う物の感覚で使っていたのですが使い分けが分かったので備忘として記事を残します。
returnを使う時に「呼び出し元に値を返す」という言葉が出てくるのですがまず「呼び出し元」から説明します。
「呼び出し元」とは
Progateで初めて勉強をしていた時に「return」を勉強している時にこの言葉が出てきて何となく分かったような感覚になっていました。
↓のコードを考えます。
これで「30」と表示されますがこういう仕組みで30と表示されます。
2行目〜4行目は変数($number)を3倍にした値を表示するという意味です。
6行目は「2行目と3行目の$numberに10を使って2行目〜4行目で10を使って計算した内容を実行する」という意味です実行する所(今だとcalc(10))が呼び出し元です。
図にすると↓です。
「呼び出し元に値を返す」とは
次は値を計算してその結果偶数か奇数なのかを判定します。
コードを↓にします。
これで「偶数」と表示されますが11行目の「hantei(20)」は2つの処理をしています。
1つ目が3行目の「3倍」で2つ目が4行目〜8行目の「偶数か奇数の判定」です。
関数(今はhantei)は使いまわすために使いますが「3倍」だけしたい「偶数か奇数の判定」だけしたい時にhanteiはやることが2つあるので使い回しには向いていません。
こんな時にreturnを使います。
returnを使ってコードを書き換えると↓になります。
コードの流れはこうなります。
6行目の「10」を2行目の「$number」に代入してその値を3行目の$numberに代入して計算した結果を6行目の「hantei2(10)」の呼び出し元に代入します。
この「呼び出し元に代入」することを「呼び出し元に値を返す」ということです。
図にすると↓で「呼び出し元に値を返す」は③の部分です。
returnはどんな時に使うか?
今回の例の様にreturnした内容を他で使う必要があるなど使わないといけなくなったら使うというスタンスでいいと思います。
returnの使い方をイラストでイメージ
言葉だけの説明だとイメージができないかもしれないのでイラストでイメージします。
料理する関数を「cook」とします。
料理をしたあとですが「人に食べてもらう」・「自分で食べる」・「保存する」など選択肢が色々とあります。
この時に関数cookを例えば↓にすると他の場面で使うことができなくなります。
そこでreturnで料理した内容を呼び出し元に値を返してそれから別の所で使う形にします。
今回解説したreturnを使ったコードと対応させます。
returnはこういう使い方をすると抑えれば使いやすくなると思います。
ちなみに↑のコードのreturnをechoにすると他の所で使うことはできません。