stdClass クラスはじめに動的なプロパティが使える、汎用的な空のクラスです。 このクラスのインスタンスは、 new 演算子や、 オブジェクトへの型変換 によって作成できます。 PHP の関数によっては、このクラスのインスタンスを返すものがあります。 たとえば json_decode, mysqli_fetch_object, PDOStatement::fetchObject が挙げられます。
マジックメソッド
__get()/__set()
を実装しているかどうかに関わらず、
このクラスでは動的なプロパティが許可されています。
よって、 PHP には全てのクラスの親となる基底クラスの概念がないため、 このクラスは基底クラスではありません。 ただ、stdClass を継承させることで、 動的なプロパティの機能を持ったカスタムクラスを結果的に作ることはできます。 クラス概要
stdClass
このクラスは、メソッドやデフォルトのプロパティを持っていません。 例例1 オブジェクトへの型変換を使い、stdClass を作る 上の例の出力は以下となります。
object(stdClass)#1 (1) {
["foo"]=>
string(3) "bar"
}
例2 json_decode によって、stdClass を作る 上の例の出力は以下となります。
object(stdClass)#1 (1) {
["foo"]=>
string(3) "bar"
}
例3 動的にプロパティを宣言する 上の例の出力は以下となります。
object(stdClass)#1 (2) {
["foo"]=>
int(42)
["1"]=>
int(42)
}
|