[英]access full object data set from within another class into the main class
我一直在尋找高低兩難的解決方案,因此沒有任何運氣,因此我作為最后的手段發帖,希望有人可以幫助我。
class Main
{
private $data = array();
private $a;
private $b;
function __contruct()
{
}
public function a()
{
if (!is_object($this->a))
{
$this->a = new A();
}
return $this->a;
}
public function b()
{
if (!is_object($this->b))
{
$this->b = new B();
}
return $this->b;
}
protected function set_data($value)
{
$this->data = $value;
}
}
class A extends Main
{
function __contrust()
{
parent::_construct();
}
public function test($value)
{
$this->set_data($value);
return $this;
}
}
class B extends Main
{
function __contrust()
{
parent::_construct();
}
public function test($value)
{
$this->set_data($value);
return $this;
}
public function get_data()
{
print_r($this->a);
}
}
$m = new Main();
$m->a()->test('add A class data');
$m->b()->test('add B class data');
$m->b()->get_data(); // want to use class A object data here
編輯
[a:private] => A Object
(
[data:private] => Array
(
[0] => Array
(
[name] => foo
[data] => 65
)
[1] => Array
(
[name] => bar
[data] => 65
)
)
[a:private] =>
[b:private] =>
)
我在主類中有一個方法,該方法可以找到要查找的名稱鍵,並返回其索引,這樣我就可以操縱其數據,該數據可以從其調用類正常工作。 但是,B類需要能夠將其自身的數據設置回數據數組,並擁有A類對象數據,以便我可以操縱其數據。
因此,正如您在實例化主類並觸發A類之后所看到的,我希望能夠在我的B類中使用A的對象數據...
將不勝感激任何可能的幫助。
謝謝,
達倫
那就是你可能想要的代碼:
class Main
{
private $data = array();
protected $a;
protected $b;
function __construct()
{
}
public function a()
{
if (!is_object($this->a))
{
$this->a = new A();
}
return $this->a;
}
public function b()
{
if (!is_object($this->b))
{
$this->b = new B();
}
return $this->b;
}
protected function set_data($value,$object)
{
$object->data = $value;
}
}
class A extends Main
{
function __contruct()
{
parent::_construct();
}
public function test($value,$object)
{
$this->set_data($value,$object);
return $this;
}
}
class B extends Main
{
function __contruct()
{
parent::_construct();
}
public function test($value,$object)
{
$this->set_data($value,$object);
return $this;
}
public function get_data()
{
print_r($this);
}
}
$m = new Main();
$m->a()->test('add A class data',$m->b());
$m->b()->test('add B class data',$m->a());
$m->b()->get_data(); // want to use class A object data here
那就是輸出:
B Object
(
[data:private] => add A class data
[a:protected] =>
[b:protected] =>
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.