Есть ли способ, чтобы сериализовать объект в массив, когда этот код называется:
class Obj {
private $prop;
public function __construct($v) {
$this->prop = $v;
}
}
$object = new Obj('value');
$result = (array) $object;
print_r($result);
// should display something like Array (prop => value)
// via a magic function call in the object ?
Некоторые ArrayObject, Traversable и другие вещи могут помочь с помощью объекты внутри foreach, count() и т.п. Но с синтаксисом силового массива, что мы можем сделать?
Благодаря
EDIT Я нашел этот пост, который был вопросом лучше объяснить Тан мину :) Casting object to array - any magic method being called?
Ответ: нет, вы не можете попросить волшебный метод при вызове (массив) объекта $
ок , поэтому нет ничего подобного 'function __clone()' для 'clone $ object'. Например, 'function __toArray()' for '(array) $ object' – rekam
Вы имеете в виду, как' __toString' для массивов? Нет, нет такой вещи, AFAIK. – georg
хорошо, спасибо за этот быстрый ответ! – rekam