在 PHP 中我正在尝试使用var_export
,但我无法让它与扩展类一起使用:
class BaseClass {
public $a = 1;
public static function __set_state($array) {
//is it possible to get the classname of the extended class here?
$obj = new BaseClass();
foreach($array as $k => $v) {
$obj->$k = $v;
}
return $obj;
}
}
class ExtendedClass extends BaseClass {
public $b = 2;
}
$object = new ExtendedClass();
var_dump($object);
$serialized_object = var_export($object, true);
eval('$object2 = ' . $serialized_object. ';');
echo "<br/>";
var_dump($object2);
然后 $object2 将属于 classBaseClass
而不是ExtendedClass
!
我有几千个从基类扩展的类,因此__set_state
为每个类创建一个方法并不是一个真正的选择。
是否有可能__set_state
获得扩展类的类名?