ini disebut metode chaining dan dilakukan dengan mengembalikan referensi ke kelas( $this ), atau objek kelas lain dari fungsi tersebut. Kemudian Anda bisa memanggil metode pada objek yang dikembalikan.
Berikut ini contoh sederhananya.
class foo{
protected $_bar;
public function bar($value){
$this->_bar = $value;
return $this;
}
public function out(){
echo $this->_bar;
}
}
$a = new foo();
$a->bar('hello')->out();
keluaran:
'hello'
Untuk lebih jelasnya, kode di atas $a->bar('hello')->out();
kira-kira setara dengan melakukan ini:
$a = new foo();
$b = $a->bar('hello'); //$a and $b are the same instance of the object
$b->out();
Sekarang karena bar()
mengembalikan $this
kita dapat menetapkannya ke $b
seperti di atas lalu panggil out()
. Tapi $a
dan $b
keduanya mereferensikan instance foo
. yang sama objek, karena kami mengembalikan $this
dari bar()
. Jadi tidak perlu variabel "palsu" tambahan ini karena kita bisa mereferensikan objek kembali secara langsung untuk panggilan berikutnya. Ini berfungsi dengan objek apa pun yang dikembalikan dari suatu metode (bukan hanya $this), tetapi jelas bahwa panggilan berikutnya dalam rantai itu melawan objek yang dikembalikan.