Как я могу получить доступ к объекту-контейнеру в PHP?

В этом примере, как я могу получить доступ к объекту объекта $containerObj из getContainerID() в объекте $containerObj->bar или хотя бы получить указатель на $containerObj ?

 class Foo { public $id = 123; } class Bar { function getContainerID() { ... //**From here how can I can access the property in the container class Foo?** } } $containerObj = new Foo(); $containerObj->bar = new Bar(); echo $containerObj->bar->getContainerID(); 

Вы не можете так поступать. Ссылка на класс может быть назначена нескольким переменным, например:

 $bar = new Bar(); $container = new Foo(); $container->bar = $bar; $container2 = new Foo(); $container2->bar = $bar; 

Теперь, какой Foo-контейнер должен возвращать PHP?

Вам лучше изменить свой подход и сделать контейнер осведомленным об объекте, который ему назначен (и наоборот):

 class Foo { public $id = 23; private $bar; public function setBar(Bar $bar) { $this->bar = $bar; $bar->setContainer($this); } } class Bar { private $container; public function setContainer($container) { $this->container = $container; } public function getContainerId() { return $this->container->id; } } $bar = new Bar(); $foo = new Foo(); $foo->setBar($bar); echo $bar->getContainerId();