2015-04-15 3 views
2

Я хочу, чтобы объекты объектов были массивами, но перед ключами массива есть пространство имен классов объектов.PHP-объект для массива без пространства имен

Я создаю фреймворк, поэтому нужно решение, которое работает для любого объекта, даже если я не знаю пространства имен.

Мой код:

$data = (array) $product; 
print_r($data); 

Выход:

[App\Model\Productid] = 20568 
[App\Model\Productcount] = 120 
[App\Model\Productname] = Samsung Galaxy S3 ... 
[App\Model\Productbrand] = Samsung 

Что мне нужно:

[id] = 20568 
[count] = 120 
[name] = Samsung Galaxy S3 ... 
[brand] = Samsung 
+1

Will JSon работы: '$ данных = json_decode (json_encode ($ продукт), true); «Трудно узнать, не имея лучшего описания объекта. (Конечно, это не отменяет «продукт», который может быть выполнен с помощью str_replace в строке json) – kainaw

+0

http://php.net/manual/en/reflectionclass.getshortname.php – giaour

+0

Как вы получаете от ' Productid 'to' id'? – AbraCadaver

ответ

1
$obj = new \ReflectionObject($product); 
print_R($obj->getName()); // get namespace and class name here 
+0

Да, что я хотел, tnx – Milad

Смежные вопросы