質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • プログラミング言語

    753questions

    プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

返り値とは?その存在意義は?

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 688
退会済みユーザー

退会済みユーザー

function example($hi = "World"){
   return "Hello,$hi";
}
echo example("PHP");
これでHello,PHPが出ることはわかりますが、なぜ
function example($hi = "World"){
   echo "Hello,$hi";
}
example("PHP");
ではいけないのですか?返り値の意味がわかりません。
書きながら思ったのですが、もしかして
function example($hi = "World"){
   return "Hello,$hi";
}
$tera = example("yes!");
echo $tera;
なら$tera"Hello,$hi";が代入されecho $tera;Hello,yes!が出力されるということですか?
しかし、まだ返り値の意味がわかりません。
返り値は変数でいう値かと思ったのですがどうでしょう?
もし正しければ、返り値はどこにでも代入できるのですか?
返り値はどのような場面に使うのですか?
returnの上の文が何行にもなった場合はどうなりますか?
また、返り値はなんのために存在しているのですか?調べても意味がわかりません...
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

確かにこのサンプルプログラムを見てしまうと、表示されるだけじゃん。
って思ってしまいますね。

でも、仮に関数exampleで何か処理を行ったとしたらどうでしょうか?
関数exampleでデータベースの更新処理や新規登録処理を行った時に関数内でエラーハンドリングを行いその場で処理を中断しても良いかもしれませんが、テータベースが複数テーブル等処理が多数連動した場合全ての処理が正常に行われたかなど判断を行う為の基準になったりもします。

function example1($a = true){
   return $a;
}

function example2($a = true){
   return $a;
}

function example3($a = true){
   return $a;
}

$data1 = example1();
$data2 = example2();
$data3 = example3();

if($data1 && $data2 && $data3){
    echo "正常終了";
}

見たいな感じです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/22 04:20

    ありがとうございます!

    キャンセル

-1

返り値はどのような場面に使うのですか? 
また、返り値はなんのために存在しているのですか?調べても意味がわかりません...
例えば、特定のデータを取得するロジックを考えてみてください。

特定データはIDで取得できます。
function getDataForId($id) {
  // ID取得でデータ処理省略

  return data;
}

このIDからデータ取得する処理が複数個所で発生する場合を考えてみてください。
関数で返り値をデータを返す場合と、それぞれデータ取得処理を記述する場合、どちらが楽でコード量が少ないでしょうか?
戻り値を返す関数はこのようにプログラムを簡略化する為に考えられた言語仕様や仕組みになります。

返り値は変数でいう値かと思ったのですがどうでしょう? 
値の場合もあれば、オブジェクトやクラスなどの参照を返す場合もあります。

もし正しければ、返り値はどこにでも代入できるのですか? 
キャストできない場合など、言語制約にひっかからなければ、どこでも代入可能です。

returnの上の文が何行にもなった場合はどうなりますか? 
よく分かりませんが、何行もreturn文を書くという事なら、コンパイルエラーになるか、一番最初のreturn文だけ有効になるような動作になると思われます。


投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/22 04:20

    ありがとうございます!

    キャンセル

同じタグがついた質問を見る

  • プログラミング言語

    753questions

    プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。