如何获取调用类的参数

时间:2012-06-03 20:59:42

标签: php class object

我有一个类创建另一个类的实例。第二个类是否可以从调用类中检索参数。

例如

Class_A {
    protected $myArray = array('item 1', 'item2', 'item3')

    public function __construct()
    {
        $nextClass = new ClassB();
        echo $nextClass->countArrayItems();
    }
}

Class_B {
    public function countArrayItems()
    {
        return count(Class_A->myArray);
    }
}

$newClass = new Class_A;

2 个答案:

答案 0 :(得分:3)

您可以将Class_A实例的引用传递给Class_B构造函数:

Class_A {
    public $myArray = array('item 1', 'item2', 'item3')

    public function __construct()
    {
        $nextClass = new Class_B($this);
        echo $nextClass->countArrayItems();
    }
}

Class_B {
    public function __construct($classA_instance) {
        $this->classA_instance = $classA_instance;
    }
    public function countArrayItems()
    {
        return count($this->classA_instance->myArray);
    }
}

$newClass = new Class_A;

(如@chris所述,Class_A-> myArray需要公开)

答案 1 :(得分:1)

仅当您将A类实例传递给B类

Class_A { 
    protected $myArray = array('item 1', 'item2', 'item3') 

    public function __construct() 
    { 
        $nextClass = new ClassB(); 
        echo $nextClass->countArrayItems($this); 
    } 
} 

Class_B { 
    public function countArrayItems($callingClass) 
    { 
        return count($callingClass->myArray); 
    } 
} 


$newClass = new Class_A;