プロパティを読み書きする
テクノロジ系 / class (class / new / プロパティ / メソッド / `$this` / コンストラクタ)
プロパティを読み書きする
Lesson 8 / Chapter 3
$obj->プロパティ名 で読み書きする
<?php
class User {
public string $name;
public int $age;
}
$u = new User();
$u->name = "太郎"; // 書き込み
$u->age = 20;
echo $u->name . "\n"; // 読み出し → 太郎
echo $u->age . "\n"; // 読み出し → 20=の左に書けば書き込み- 式の中に書けば読み出し
- 矢印は
->(間にスペースは入れない)
複数のプロパティをまとめて設定
<?php
class Book {
public string $title;
public int $price;
public string $author;
}
$b = new Book();
$b->title = "PHP 入門";
$b->price = 1200;
$b->author = "山田";- 1 つのインスタンスに、宣言した数だけプロパティを並べられる
- 順番は自由 (ただし「全部を 1 ヶ所にまとめる」のが読みやすい)
取り出して文字列と連結する
<?php
$u = new User();
$u->name = "太郎";
$u->age = 20;
echo $u->name . " (" . $u->age . " 歳)\n";実行結果:
太郎 (20 歳)
$u->nameをそのまま.で連結できる- ダブルクォート文字列に埋め込む時は
{$u->name}と中括弧で囲む
よくあるミス
$u . name = "太郎"; // ❌ ドットではなくアロー $u->name == "太郎"; // ❌ 比較になっている (= 1 個) $u -> name = "太郎"; // ⚠️ スペースを空けても動くが慣例違反
直したもの:
$u->name = "太郎";
->は マイナス + 大なり で スペースなし が標準
このチャプターでできるようになること
✅ $obj->prop = 値; で値を書き込める
✅ $obj->prop で値を読み出せる
✅ 1 つのインスタンスに複数のプロパティを設定できる
✅ プロパティを . で連結したり {$obj->prop} で展開したりできる
→ ドリルへ
考えてみよう
既定では正解・不正解の判定はしません。自分のペースで「答えを見る」を。採点してほしい場合だけ「採点してほしい」を押してください。
ドリル 01 — 2 つのプロパティを設定して出力
問題
User クラスを定義してください。
public string $name;public int $age;
new User() でインスタンスを作り、name に "太郎"、age に 20 を入れて、それぞれ 1 行ずつ出力してください。
期待される出力:
太郎 20
採点
php scripts/grade.php topics/class/ch03-properties/drill/01-set-and-get/
ヒント
$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 東京
採点
php scripts/grade.php topics/class/ch03-properties/drill/02-multiple-props/
ヒント
- 3 つのプロパティをクラス内に並べる
- 同じインスタンスにすべて書き込む
- 出力は宣言順 (name → age → city) で揃える