概要

引数 (argument) は 関数の外から中へ値を渡すための入口 だ。引数がない関数は毎回まったく同じ出力しかできないが、function greet($name) のように仮引数を 1 つ用意するだけで、greet("太郎") greet("花子") のように呼び出しごとに違う値を扱えるようになる。「同じ処理だが対象が違う」場面をすべて 1 つの関数に統合できるのが、関数を引数化する最大の動機になる。

PHP では function f($x) { ... }$x仮引数f(10)10実引数 と呼ぶ。仮引数は左から順に対応付けられ、複数並べる場合は ($a, $b, $c) のようにカンマで区切る。実引数を渡し忘れると基本的にエラーになるので、定義側の引数の数と呼び出し側の値の数は揃える必要がある。

このチャプターで覚えておくべき落とし穴は スコープ。仮引数 $name は関数の { } の中だけで有効で、外から echo $name; しても未定義扱いになる。「関数の中の世界と外の世界は別」という感覚を、この段階で掴んでおくと後の $this (class トピック ch05) や static (class-advanced トピック ch06) の理解が一段速くなる。

学習目標

ドリル

no 内容
01 greet($name) を 3 人分呼ぶ
02 add($a, $b) で合計を出力する
03 describe($name, $age, $city) を作る

演習: ドリル 01 — greet($name) を 3 人分呼ぶ

問題

引数 $name を 1 個受け取って こんにちは <name> さん を 1 行出力する関数 greet を定義してください。

定義した後、次の 3 人分の挨拶を順に呼んでください。

期待される出力:

こんにちは 太郎 さん
こんにちは 花子 さん
こんにちは 次郎 さん

ヒント

演習: ドリル 02 — add($a, $b) で合計を出力

問題

引数 $a$b を受け取り、その合計を 1 行出力する関数 add を定義してください。

定義した後、標準入力から 2 行 (1 行に 1 つの整数) を読み、add を 1 回呼んで合計を出力してください。

入力例:

3
7

期待される出力:

10

ヒント

演習: ドリル 03 — describe($name, $age, $city) を作る

問題

引数 $name$age$city を受け取り、次の形式で 1 行出力する関数 describe を定義してください。

<name> ( <age> ) - <city>

定義した後、次の 2 件を順に呼んでください。

期待される出力:

太郎 ( 20 ) - 東京
花子 ( 25 ) - 大阪

ヒント

この章を AI に聞く

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

    💬 ChatGPT 📘 Claude ✨ Gemini

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

    💬 ChatGPT 📘 Claude ✨ Gemini

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

    💬 ChatGPT 📘 Claude ✨ Gemini

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

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

X で共有 Hatena LINE