概要
メソッド (method) は クラスの中に定義された関数 で、そのクラスのインスタンスが「できる動作」を表す。User クラスに greet() メソッドを書けば、$user->greet() の形で呼び出せる。書き方は通常の関数と同じく function 名前() { ... } を使い、クラスの { } の中に並べる。データだけ持っていたインスタンスが、これで「振る舞い」も持てるようになる。
メソッドの呼び出しは インスタンス->メソッド名() の形で、プロパティ (->prop) と同じ -> を使うが「() が付くかどうか」で区別される。$user->name はプロパティ、$user->greet() はメソッド呼び出しになる。メソッドにも引数を渡せて ($user->add(5))、関数と同じ感覚で値を受け取れる。
このチャプターでは $this をまだ使わない。プロパティを更新したいときは外から $user->age = 25; のように直接代入する形で扱い、メソッドの中身は固定文言の出力や引数の演算結果の出力に留める。「メソッド呼び出しのリズム」を先に体に入れて、次の章 ($this) でメソッド内からプロパティを参照するパターンに進む。
学習目標
- クラスの
{ }の中にfunction 名前() { ... }を書ける $obj->method()でメソッドを呼べる- メソッドにも引数を渡せる
ドリル
| no | 内容 |
|---|---|
| 01 | 引数なしの greet() メソッドで「こんにちは」と出す |
| 02 | 引数ありの add(int $n) メソッドで age を更新する |
$thisはまだ使わない。プロパティ更新は外から$obj->age = ...で行う。$thisは ch05 で扱う。
📝 演習: ドリル 01 — greet メソッドを呼ぶ
問題
User クラスを定義してください。
public function greet(): voidというメソッドを 1 つ持つ- このメソッドは
"こんにちは\n"をechoするだけ
new User() でインスタンスを作り、greet() を呼んで出力してください。
期待される出力:
こんにちはヒント
functionはクラスの{ }の中に書く- 呼び出しは
$u->greet();のように()を忘れない - まだ
$thisは使わない。固定の文字列をechoするだけ