1

別のクラスのインスタンスを作成するクラスがあります。2 番目のクラスが呼び出し元のクラスからパラメーターを取得することは可能ですか。

例えば

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;
4

2 に答える 2

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 は public である必要があります)

于 2012-06-03T21:03:04.087 に答える
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; 
于 2012-06-03T21:03:38.610 に答える