如何从PHP中的内部对象获取外部对象用于内部对象的属性名称

时间:2011-10-07 09:50:15

标签: php oop

好的,所以我无法控制的代码就像这样:

Class A {

   function use_b($b_name) {
       $this ->  $b_name = new B();
   }
}

Class B {
   var $stuff;
}

因此,类B的对象在类A中,而类A将使用传入的名称作为类B属性的属性名。 B级完全没有意识到它已被赋予的名称,而且实际上并不需要知道。但我需要知道它才能从A类访问B类。

我对代码有足够的控制权,我可以为B类创建属性,并将其设置为A给出的名称类,如果可能的话。然后我可以让B类将它的名称传递给我需要遍历B类的函数(目前它只返回外部对象,所以我可以访问类BI只是不知道它被赋予的名称。)

如果这根本没有意义,请发表评论并告诉我。

1 个答案:

答案 0 :(得分:1)

找出持有B实例的A成员并不难。试试这段代码:

<?php
Class A {
   function use_b($b_name) {
       $this ->  $b_name = new B();
   }
}

Class B {
   var $stuff;
}

$a = new A();
$a->use_b('test');

foreach(get_object_vars($a) as $key=>$val)
    if(get_class($val) == 'B')
        echo $key . " is the member that holds an instance of B";