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