在PHP中获得对象依赖性
-
26-10-2019 - |
题
我有一个取决于其他对象的对象的实例,例如
$objA = new Some_Class();
$objB = new Other_Class();
$objC = new Another_One();
$objA->property = new stdClass;
$objB->key = $objA;
$objB->arr = array(new Other_Object());
$objectC->property = $objB
$objectC->other = array(array('k'=>'v'));
我如何获得使用的类列表 $objectC
?
在这种特殊情况下:
array(
'Some_Class',
'Other_Class',
'Another_Class',
'stdClass',
'Another_Object'
)
我需要序列化对象,但是在不进行重新化之前,我需要实例化所有所需的类。
您将如何自动获得课程?
解决方案
serialize
不是浅,它很深。
这意味着如果您打电话 serialize($objectC);
, ,您不仅获得$ objectc,而且还获得所有属性, 包括可能包含的任何对象.
如果你 必须 重新构造一个子对象之一(假设它是一个数据库适配器,包含一个不可限制的资源),请考虑实现 可序列化 界面,您可以对序列化和不进行序列化操作进行细粒度的控制,而这些操作根本无法使用 __sleep
/__wakeup
魔法方法。您可以使用接口提供的方法返回自定义的数据结构,该结构将允许您根据需要手动重建对象。
不隶属于 StackOverflow