Объединение подобных методов называется «сцеплением».
return $this;
в каждом методе обеспечит возможность цепочки, так как он продолжает передавать экземпляр от одного метода к другому, поддерживая цепочку.
Вы должны сделать это явно, так как Функции PHP вернут NULL
по умолчанию .
Итак, вам просто нужно еще 2 строки.
<?php
class MyClass{
function a(){
echo "F.A ";
return $this; // <== Allows chainability
}
function b(){
echo "F.B ";
return $this;
}
}
$c=new MyClass;
$c->a()->b()->b()->a();
?>
Взгляните на эту статью Джона Сквибба для дальнейшего изучения возможности объединения в PHP.
Вы можете делать все виды вещей с возможностью объединения.Методы обычно включают аргументы.Вот «цепочка аргументов»:
<code><?php
class MyClass{
private $args = array();
public function a(){
$this->args = array_merge($this->args, func_get_args());
return $this;
}
public function b(){
$this->args = array_merge($this->args, func_get_args());
return $this;
}
public function c(){
$this->args = array_merge($this->args, func_get_args());
echo "<pre>";
print_r($this->args);
echo "
"; вернуть $ this;}} $ c = new MyClass; $ c-> a (" a ") -> b (" b "," c ") -> b (4, "cat") -> a ("собака", 5) -> c ("end") -> b ("no") -> c ("ok"); // Вывод: //Array ([0] => a [1] => b [2] => c [3] => 4 [4] => cat // [5] => dog [6] => 5 [7] => end) // Array ([0] => a [1] => b [2] => c [3] => 4 [4] => cat // [5] => dog [6] =>5 [7] => end [8] => no [9] => ok)?>