كيفية تكرار كائن PHP بمفاتيح ديناميكية (أسماء خصائص)
مرحباً بالجميع. أنا مبتدئ في PHP وواجهت مشكلة أثناء العمل مع بيانات JSON. بعد فك تشفير JSON باستخدام `json_decode()` أحصل على كائن stdClass، حيث تكون الخصائص (المفاتيح) غير معروفة مسبقاً. على سبيل المثال، أحصل على بيانات عن منتجات من API خارجي، وقد تتغير أسماء الحقول (السعر، الكمية، الوصف — لكن التركيب الدقيق للحقول غير معروف). أحتاج إلى المرور عبر جميع خصائص هذا الكائن وعرضها على الشاشة.
إليك مثال على الكود الذي لا يعمل لدي:
```php
$json = '{"item1": {"name": "المنتج أ", "price": 150}, "item2": {"name": "المنتج ب", "price": 250}}';
$data = json_decode($json);
// أحاول التكرار كمصفوفة — خطأ
foreach ($data as $key => $value) {
echo $key . ': ' . $value . '
'; } ``` هذا الكود يعطي خطأ: "Invalid argument supplied for foreach()". أفهم أن `$data` هو كائن وليس مصفوفة. لكن كيف يمكنني تكرار جميع خصائصه إذا كنت لا أعرف أسمائها؟ جربت استخدام `$data->$key` — لم ينجح أيضاً.
'; } ``` هذا الكود يعطي خطأ: "Invalid argument supplied for foreach()". أفهم أن `$data` هو كائن وليس مصفوفة. لكن كيف يمكنني تكرار جميع خصائصه إذا كنت لا أعرف أسمائها؟ جربت استخدام `$data->$key` — لم ينجح أيضاً.