我有一个类创建另一个类的实例。第二个类是否可以从调用类中检索参数。
例如
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;
答案 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;