$object->foo1()->foo2()->foo3();
Сначала PHP получит указатель на метод foo1
из переменной $object
.Он вызывает этот метод, который затем возвращает другой объект.Этот второй объект (назовем его $object2
) имеет метод foo2()
, который также вызывается.foo2()
возвращает другой объект ($object3
), который имеет метод foo3()
, который возвращает все, что ему нравится.
В некоторых случаях $object
, $object2
и $object3
являются просто указателямик тому же объекту.Это означает, что вы можете продолжать вызывать методы одного и того же класса в удобной последовательности.
Вы можете достичь этого довольно легко:
class Foo
{
public function nicely()
{
return $this;
}
public function formatted()
{
return $this;
}
public function chained()
{
return $this;
}
public function calls()
{
return $this;
}
}
$foo = new Foo();
$foo->nicely()->formatted()->chained()->calls();