ch03 6章中 3章目

ch03 — return で戻り値を返す

スライドで見る

この章を AI と学ぶ

💬 AI に聞く質問例 3 件
  1. 「ch03 — return で戻り値を返す」のつまずきやすいポイントを、初学者向けに3つ教えてください

    ChatGPT Claude Gemini

  2. 「ch03 — return で戻り値を返す」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    ChatGPT Claude Gemini

  3. 「ch03 — return で戻り値を返す」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    ChatGPT Claude Gemini

概要

関数は 引数で値を受け取り、return で値を返すecho は「画面にそのまま出す」のに対して、return は「呼び出し元に値を渡して、その後どう使うかは呼び出し側に任せる」という違いがある。return で値を返せるようになると、関数の結果を変数に代入したり、別の関数の引数に渡したり、計算式の中に埋め込んだりできるようになり、関数を 部品 として組み立てる発想が生まれる。

PHP の return は数値・文字列・真偽値・配列・オブジェクトなど何でも返せる。return が実行されるとそこで関数は終了し、それより後ろの行は実行されない。return を 1 度も書かない関数は暗黙的に null を返すので、「値を返したつもりが何も返っていない」状態にハマったら return の付け忘れをまず疑う。

このチャプターでつまずきやすいのは echoreturn の混同。例えば function square($x) { echo $x * $x; } と書くと結果は画面に出るが、$y = square(3); としたとき $ynull のままになる。「画面に出すこと」と「値を返すこと」を別物として区別する感覚を、3 つのドリルで身に付ける。

学習目標

  • return で関数から値を返せる
  • 戻り値を変数に代入したり、echo で出力したりできる
  • 数値・文字列・真偽値を返せる

ドリル

no 内容
01 square($x) で二乗を返す
02 full_name($a, $b) で氏名を連結して返す
03 is_even($n) で真偽を返す

解説スライド 全 6 枚

右の ボタン キー(またはスワイプ)で次のスライドに進めます。 下の「縦表示」を開くと全スライドを一気に読めます。

  1. return で戻り値を返す

    Lesson 7 / Chapter 3

  2. echo するだけの関数は使い回しにくい

    <?php
    function square($x) {
        echo $x * $x . "\n";
    }
    
    square(3); // 9
    • 中で echo してしまうと「画面に出す」だけで終わる
    • 計算結果を他で 再利用 したいときに困る
    • 戻り値 にすれば、呼び出し側で自由に扱える
  3. return で値を返す

    <?php
    function square($x) {
        return $x * $x;
    }
    
    $result = square(3);
    echo $result . "\n"; // 9
    • return 値; で関数から値を返す
    • 呼び出し側で $result = square(3); のように受け取る
    • return を実行すると関数はそこで 終わる
  4. 戻り値はそのまま echo にも渡せる

    <?php
    function square($x) {
        return $x * $x;
    }
    
    echo square(4) . "\n";   // 16
    echo square(5) . "\n";   // 25
    • 変数に代入せずに echo の中に直接書ける
    • 戻り値を別の関数の引数に渡すこともできる
  5. 戻り値の型は何でもよい

    <?php
    function full_name($first, $last) {
        return $first . " " . $last;   // 文字列を返す
    }
    
    function is_big($n) {
        return $n >= 100;              // 真偽値を返す
    }
    
    echo full_name("太郎", "山田") . "\n"; // 太郎 山田
    var_dump(is_big(50));                 // bool(false)
    • 数値・文字列・真偽値・配列など、何でも返せる
    • return を書かない関数の戻り値は null
  6. このチャプターでできるようになること

    return 値; で関数から値を返せる ✅ 戻り値を変数で受け取れる ✅ 戻り値を echo に直接渡せる ✅ 数値・文字列・真偽値を返せる

    → ドリルへ

1 / 6
📜 スライドを全部一気に読む(縦表示)

Lesson 7 / Chapter 3


echo するだけの関数は使い回しにくい

<?php
function square($x) {
    echo $x * $x . "\n";
}

square(3); // 9
  • 中で echo してしまうと「画面に出す」だけで終わる
  • 計算結果を他で 再利用 したいときに困る
  • 戻り値 にすれば、呼び出し側で自由に扱える

return で値を返す

<?php
function square($x) {
    return $x * $x;
}

$result = square(3);
echo $result . "\n"; // 9
  • return 値; で関数から値を返す
  • 呼び出し側で $result = square(3); のように受け取る
  • return を実行すると関数はそこで 終わる

戻り値はそのまま echo にも渡せる

<?php
function square($x) {
    return $x * $x;
}

echo square(4) . "\n";   // 16
echo square(5) . "\n";   // 25
  • 変数に代入せずに echo の中に直接書ける
  • 戻り値を別の関数の引数に渡すこともできる

戻り値の型は何でもよい

<?php
function full_name($first, $last) {
    return $first . " " . $last;   // 文字列を返す
}

function is_big($n) {
    return $n >= 100;              // 真偽値を返す
}

echo full_name("太郎", "山田") . "\n"; // 太郎 山田
var_dump(is_big(50));                 // bool(false)
  • 数値・文字列・真偽値・配列など、何でも返せる
  • return を書かない関数の戻り値は null

このチャプターでできるようになること

return 値; で関数から値を返せる ✅ 戻り値を変数で受け取れる ✅ 戻り値を echo に直接渡せる ✅ 数値・文字列・真偽値を返せる

→ ドリルへ

この章で取り組む 演習問題の流れ (3ステップ)
  1. 01 ドリル 01 — square($x) で二乗を返す README.md starter.php answer.php
  2. 02 ドリル 02 — full_name($first, $last) を連結して返す README.md starter.php answer.php
  3. 03 ドリル 03 — is_even($n) で真偽を返す README.md starter.php answer.php

演習問題の詳細

この章の演習問題の内容を読めます。実際に手元で解くには教材リポジトリを clone してください。

ドリル 01 — square($x) で二乗を返す

問題

引数 $x を受け取り、$x * $xreturn で返す関数 square を定義してください。

定義した後、square(3)square(4)square(5) の戻り値を 1 行ずつ出力してください。

期待される出力:

9
16
25

ヒント

  • function square($x) { return $x * $x; }
  • 下で echo square(3) . "\n"; を 3 回書く

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

ドリル 02 — full_name($first, $last) を連結して返す

問題

引数 $first$last を受け取り、半角スペース 1 個でつないだ文字列を return で返す関数 full_name を定義してください。

定義した後、戻り値を変数で受け取り、echo で 2 件分出力してください。

  • 太郎, 山田
  • 花子, 鈴木

期待される出力:

太郎 山田
花子 鈴木

ヒント

  • function full_name($first, $last) { return $first . " " . $last; }
  • $name1 = full_name("太郎", "山田");
  • echo $name1 . "\n"; を 2 件分

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

ドリル 03 — is_even($n) で真偽を返す

問題

引数 $n を受け取り、偶数なら true、奇数なら falsereturn で返す関数 is_even を定義してください。

定義した後、15 の各数値について次の形式で 1 行ずつ出力してください。

<n>: true   ← 偶数のとき
<n>: false  ← 奇数のとき

期待される出力:

1: false
2: true
3: false
4: true
5: false

ヒント

  • function is_even($n) { return $n % 2 === 0; }
  • for ($i = 1; $i <= 5; $i++) { ... } でループ
  • is_even($i) ? "true" : "false" で文字に変換して出力

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

演習問題(3問)

  1. ドリル 01 — square($x) で二乗を返す

    README.md starter.php answer.php

  2. ドリル 02 — full_name($first, $last) を連結して返す

    README.md starter.php answer.php

  3. ドリル 03 — is_even($n) で真偽を返す

    README.md starter.php answer.php

サイト内で問題文・雛形・解答例を確認できます。実際に手元で解くには教材リポジトリを clone してください。

完了にすると進捗に反映されます