Php 从另一个类中访问主类中的完整对象数据集
我已经到处寻找解决这个问题的方法,但一点运气都没有,所以我把帖子作为最后的手段,希望有人能帮助我Php 从另一个类中访问主类中的完整对象数据集,php,Php,我已经到处寻找解决这个问题的方法,但一点运气都没有,所以我把帖子作为最后的手段,希望有人能帮助我 class Main { private $data = array(); private $a; private $b; function __contruct() { } public function a() { if (!is_object($this->a)) {
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
编辑
我在main类中有一个方法,它可以找到我要查找的name键并返回它的索引,这样我就可以从它的调用类中操作它的数据。但是,类B需要能够将自己的数据设置回数据数组,并获取类a对象数据,以便我可以操作其数据
所以你可以看到,在我实例化主类并启动一个类之后,我希望能够在我的B类中使用A的对象数据
非常感谢您的帮助
谢谢
Darren这是您可能需要的代码:
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] =>
)
希望你能更容易地解释你想用它实现什么,即为什么你认为你需要它,而不是我们来解释它有什么问题;-)嗨,沃克。。。我会尽力解释:)基本上我有一个设置/获取数据的主类,然后有7个左右的类扩展,每个类都将自己的各种数据设置回主类。现在,其中一个类为它在主数据数组中创建的每个数据添加了一个名称键。因此,我需要能够从另一个类访问此名称键,以便可以更新/向“its”数组添加更多元素。不确定这是否有意义,否则我可以编辑主帖子并提供更多信息?您好,K102,谢谢,但不完全是我想要的,因为对象A和B中的数据被颠倒了,这也意味着所有方法链接都必须传递对象参数$m->b()->test('addb class data',$m->a())->method('abc',$m->a())->method1('cde',$m->a());这是不实际的。。。不过,我很感激你的回应
B Object
(
[data:private] => add A class data
[a:protected] =>
[b:protected] =>
)