stdClassとは
stdClass = プロパティやメソッドを一切持たない標準クラス
特徴
- 普通のクラスのようにnewを用いて使用
$obj = new stdClass();
$obj->hoge = 'hoge';
- 配列で結果を返す代わりにstdClassを返す
// 配列の場合
$dog= [];
$dog['name'] = 'pochi';
echo $dog['name'];
// stdClassの場合
$dog= new stdClass();
$dog->name= 'pochi';
echo $dog->name;
// 定義していないプロパティにアクセスするとエラーに
$cat = stdClass();
echo $cat->name; // PHP Notice: Undefined property: stdClass::$fuga
配列ではなくオブジェクト形式でデータを保存したいときに使用。オブジェクトにすることで、$obj->hoge
のような形で記述可能に
- 他の型からオブジェクト型にキャストを行うとstdClassのインスタンスになる
オブジェクト以外の型の値がオブジェクトに変換される時には、stdClass というビルトインクラス(予めPHPの内部で定義されているクラス)のインスタンスが新しく生成されます。
引用:オブジェクト