概要
プロパティ (property) は インスタンスが保持するデータの場所 で、PHP では $obj->prop の形でアクセスする。-> (アロー) はオブジェクトの中身を指す演算子で、$user->name = "太郎" で代入、echo $user->name; で取得できる。1 つのインスタンスに複数のプロパティを定義しておけば、name age city のような関連データをひとまとまりで保持できる。
プロパティへのアクセスは 左辺と右辺の両方で使える。$user->age = 20; (左辺で代入) と echo $user->age; (右辺で取得) は同じ記法で、これは通常の変数 $x と同じリズムで読み書きできるということ。インスタンスごとにプロパティは独立しているので、$a->name と $b->name を別々に設定しても互いに影響しない。
このチャプターでは public プロパティを使った素朴な代入と取得だけを扱い、外から自由に書き換えられる状態にしている。実務では「外から書き換えてほしくないデータ」を private にして getter / setter 越しに公開する設計が一般的だが、それは ch07 (アクセス修飾子) で扱う。まずは「インスタンスはデータを持てる」「プロパティは -> で出し入れする」の感覚をしっかり付ける。
学習目標
$obj->prop = 値;で値を入れられる$obj->propで値を取り出せる- 1 つのインスタンスに複数のプロパティを設定できる
ドリル
| no | 内容 |
|---|---|
| 01 | name と age を設定して両方を出力 |
| 02 | name / age / city の 3 プロパティを設定して出力 |
📝 演習: ドリル 01 — 2 つのプロパティを設定して出力
問題
User クラスを定義してください。
public string $name;public int $age;
new User() でインスタンスを作り、name に "太郎"、age に 20 を入れて、それぞれ 1 行ずつ出力してください。
期待される出力:
太郎
20ヒント
$u = new User();でインスタンスを作る$u->name = "太郎";$u->age = 20;で書き込みecho $u->name . "\n";echo $u->age . "\n";で読み出し
📝 演習: ドリル 02 — 3 つのプロパティを設定して出力
問題
User クラスを定義してください。
public string $name;public int $age;public string $city;
new User() でインスタンスを作り、次の値を入れてください。
| プロパティ | 値 |
|---|---|
name |
"太郎" |
age |
25 |
city |
"東京" |
その後、name → age → city の順に 1 行ずつ出力してください。
期待される出力:
太郎
25
東京ヒント
- 3 つのプロパティをクラス内に並べる
- 同じインスタンスにすべて書き込む
- 出力は宣言順 (name → age → city) で揃える