如何获取调用类的参数


How to get parameters of calling class

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

例如

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;
您可以将

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需要公开)

仅当将类 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;