【PHP】stdClassとは?

プロになるためのPHPプログラミング入門を読んでいると、オブジェクトの作成場面で知らない語法がでてきた。

$obj = new stdClass();

このstdClassとは何ぞや?ということで早速、調べてみました。

解答は、PHPマニュアルに。
http://php.net/manual/ja/language.oop5.basic.php

上記マニュアルのノート部分に次のような記述があります。英語なので意訳してます。

『stdClassは、PHPのデフォルトのオブジェクト(クラス)なんだ。
stdClassは、どんなプロパティもメソッドも持たず、親クラスも無いんだよ。そして、マジックメソッドをサポートしてないし、インターフェースも無いんだ。
スカラー値や配列をオブジェクトして扱いたいとき、stdClassをインスタンス化することができるよ。一般的なオブジェクトをインスタンス化したい時、stdClassを使うことができるんだ。』

つまり、次のように、クラスが無くとも、とりあえずオブジェクトを作りたいときに便利に使える代物のようです。

$obj = new stdClass();
$obj->val1 = 123;
$obj->val2 = 'abc';

でも、あまり見かけないですよね。古い使い方なのでしょうか?それともオブジェクト指向のコードだと頻繁に使うものなのかな。

カテゴリー: PHP パーマリンク

コメントを残す

メールアドレスが公開されることはありません。