: object
コロンオブジェクト(データ型と型操作)
意味 オブジェクト型の宣言
: objectとは?
: objectは、PHPでオブジェクト型を宣言するために使用されます。関数の戻り値や引数の型として、任意のクラスのインスタンスを受け入れることを示します。
: objectの具体的な使い方
汎用的なオブジェクト処理関数
class User {
public function __construct(private string $name) {}
public function getName(): string { return $this->name; }
}
class Product {
public function __construct(private string $name) {}
public function getName(): string { return $this->name; }
}
function printName(object $obj): void {
if (method_exists($obj, 'getName')) {
echo "名前: " . $obj->getName() . "\n";
} else {
echo "このオブジェクトは getName メソッドを持っていません。\n";
}
}
$user = new User("山田太郎");
$product = new Product("スマートフォン");
printName($user);
printName($product);
👇出力結果
名前: 山田太郎
名前: スマートフォン
この例では、printName関数が引数$objをobject型として受け取ります。関数は渡されたオブジェクトがgetNameメソッドを持っているかチェックし、持っている場合はそのメソッドを呼び出して結果を表示します。これにより、異なるクラスのオブジェクトを同じ関数で処理できます。
オブジェクトの型チェックと処理
interface Drawable {
public function draw(): string;
}
class Circle implements Drawable {
public function draw(): string {
return "○";
}
}
class Square implements Drawable {
public function draw(): string {
return "□";
}
}
function drawShape(object $shape): void {
if ($shape instanceof Drawable) {
echo $shape->draw() . "\n";
} else {
echo "この形状は描画できません。\n";
}
}
$circle = new Circle();
$square = new Square();
$stdObj = new stdClass();
drawShape($circle);
drawShape($square);
drawShape($stdObj);
👇出力結果
○
□
この形状は描画できません。
この例では、drawShape関数が引数$shapeをobject型として受け取ります。関数は渡されたオブジェクトがDrawableインターフェースを実装しているかチェックし、実装している場合はdrawメソッドを呼び出して結果を表示します。これにより、Drawableを実装した異なるクラスのオブジェクトを同じ方法で処理できます。
: objectに関するよくある質問
: objectが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPの: objectやintval()、resource、integer、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
PHPを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!