Avatar ·

ما هو stdClass في PHP ولأي غرض يستخدم؟

مرحبًا أيها الزملاء! أنا مطور PHP مبتدئ، وعند قراءة كود الآخرين غالبًا ما أصادف بنية غريبة: `$obj = new stdClass();`. ثم يتم التعامل مع هذا الكائن ككائن عادي، مع إضافة خصائص أثناء التنفيذ: `$obj->name = 'John';`. أفهم أن هذه فئة مدمجة، لكنني لا أستطيع فهم جوهرها. على سبيل المثال، اعتدت إنشاء كائنات من خلال فئاتي الخاصة: ```php class User { public $name; public $email; } $user = new User(); $user->name = 'John'; ``` ولكن لماذا إذن `stdClass`؟ في التوثيق مكتوب أنها فئة فارغة، لكن لماذا هي مطلوبة أصلاً؟ لماذا لا يمكنني استخدام مصفوفة ببساطة؟ فالمصفوفة `['name' => 'John']` تفعل نفس الشيء. كما رأيت أن `stdClass` يظهر عند تحويل JSON إلى كائن عبر `json_decode($json)`. إذا لم يتم تمرير المعامل الثاني `true`، يتم إرجاع كائن من نوع `stdClass`. هذا أربكني تمامًا. يرجى توضيح في أي الحالات يكون `stdClass` مفيدًا حقًا، ومتى يُفضل تجنبه؟ وهل هناك