ما هو 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` مفيدًا حقًا، ومتى يُفضل تجنبه؟ وهل هناك