概要

関数は配列も自由に受け取れるし、配列を戻り値として返すこともできる。function total(array $arr): int { ... } のように array 型を付けて宣言すれば、複数の値をひとまとめにして渡せるようになり、合計・平均・抽出・変換のような「コレクションに対するひとかたまりの処理」を関数として独立させられる。引数が 1 個でも中身は 100 件あって構わないので、「いくつ並んでもいい」性質を持つ入力には配列引数が向いている。

PHP では配列を関数に渡しても 値渡し で挙動するのが基本だ (オブジェクトと違って関数内の変更が外に伝わらない)。配列の各要素を 2 倍にするような変換系の関数は、新しい配列を作って return で返すパターンで書く。これは小さなパイプラインの土台になり、「フィルタ → 変換 → 集計」のような流れを 3 つの関数の組み合わせで表現できるようになる。

このチャプターはあくまで「自分で書く」ことを目的にしているが、PHP には同じ用途で使える array_sum / array_map / array_filter といった組み込み関数も豊富にある。まず手書きで合計・倍化・抽出を書いて動きを掴んでから、後の章で組み込み関数に置き換える流れを意識しておくと、「自前で書ける」と「ライブラリで一発」の両方を選べる引き出しが揃う。

学習目標

ドリル

no 内容
01 total(array $arr): int で合計を返す
02 配列の各要素を 2 倍にして返す
03 配列から正の数だけ抽出して返す

演習: ドリル 01 — total(array $arr): int で合計を返す

問題

配列 $arr を引数に取り、要素の合計を return で返す関数 total を、型宣言付きで定義してください。

定義した後、次の 3 件の戻り値を 1 行ずつ出力してください。

  1. total([1, 2, 3, 4, 5])
  2. total([10, 20, 30])
  3. total([7])

期待される出力:

15
60
7

ヒント

演習: ドリル 02 — 配列の各要素を 2 倍にして返す

問題

配列 $arr を引数に取り、各要素を 2 倍にした 新しい配列return で返す関数 doubled を定義してください。

定義した後、doubled([1, 2, 3, 4, 5]) の戻り値を 1 要素 1 行で出力してください。

期待される出力:

2
4
6
8
10

ヒント

演習: ドリル 03 — 配列から正の数だけ抽出する

問題

配列 $arr を引数に取り、0 より大きい要素だけを集めた 新しい配列return で返す関数 positives を定義してください。

定義した後、positives([-3, -1, 0, 2, -5, 4, 7]) の戻り値を 1 要素 1 行で出力してください。

期待される出力:

2
4
7

ヒント

この章を AI に聞く

  1. 「ch06 — 配列を引数に取る / 配列を返す」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch06 — 配列を引数に取る / 配列を返す」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch06 — 配列を引数に取る / 配列を返す」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

🎉 受講お疲れさまでした!

ch06 — 配列を引数に取る / 配列を返す」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE