【发布时间】:2015-11-07 02:25:07
【问题描述】:
是否有任何类似的 PHP 函数可以反序列化为对象而不是始终为数组?
$session_data = unserialize($tmp[0]); // I need this to be an object
我需要反序列化为一个对象,这样我才能访问像 $session_data->FirstName 这样的值,而不是 $session_data['FirstName']。
编辑:我有一个可以做到这一点的函数,但对我来说这似乎很草率,我想知道是否有办法在 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()文档。如果你序列化一个对象,你可以使用数据来反序列化同一个对象 -
这里已经完整回答了:你能在 PHP 中动态创建实例属性吗?简短的摘要。您可以使用类构造方法动态生成具有关联数组的属性,也可以使用魔术方法自定义 setter 和 getter 方法以逐个名称执行相同的操作。
标签: php