Help us understand the problem. What is going on with this article?



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の内部で定義されているクラス)のインスタンスが新しく生成されます。


Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away