質問

他のオブジェクトに依存するオブジェクトのインスタンスがあります。

$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);, 、あなたは$ objeccだけでなく、そのすべてのプロパティも取得しています、 含まれる可能性のあるオブジェクトを含む.

もし、あんたが しなければならない 子どものオブジェクトの1つを取り戻します(それがデータベースアダプターだとしましょう。 シリアル化可能 インターフェースは、シリアル化および非正解決操作を微調整できる制御を実行できます。 __sleep/__wakeup 魔法の方法。インターフェイスによって提供されるメソッドを使用して、必要に応じてオブジェクトを手動で再構築できるカスタマイズされたデータ構造を返すことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top