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