Koenig,
class A
{
protected $b;
public function a()
{
return $this;
}
public function b()
{
retunr new B($this);
}
}
class B
{
protected $a;
public function __construct($a)
{
$this->a = $a;
}
public function a()
{
return $this->a;
}
public function c()
{
return $this;
}
}
(new A)->a()->b()->c()->a()->b()->c();