Есть ли подобная функция PHP, которая может несериализоваться на объект, а не всегда на массив?PHP-unserialize для объекта
$session_data = unserialize($tmp[0]); // I need this to be an object
Мне нужно десериализируются к объекту, так что я могу получить доступ к значениям как $session_data->FirstName
вместо $session_data['FirstName']
.
EDIT: У меня есть функция, которая будет делать это, но мне кажется, ненадежна и мне было интересно, если есть способ сделать это изначально в PHP:
function ato($array) {
$obj= new stdClass();
foreach ($array as $k=> $v) {
if (is_array($v)) {
$v = array_to_object($v);
}
$obj->{strtolower($k)} = $v;
}
return $obj;
}
Да, прочитайте документацию 'serialize()'. Если вы сериализовываете объект, вы можете использовать данные для несериализации одного и того же объекта. – RiggsFolly
Здесь полностью ответили: Можете ли вы создавать динамические свойства экземпляра на PHP? Краткое резюме. Вы можете использовать метод конструктора классов для динамического генерации свойств с помощью ассоциативного массива, или вы можете использовать магические методы для настройки методов setter и getter для того, чтобы сделать то же самое по имени по имени. – sunny