Since PHP5, methods can return objects (including $this). This enables you to chain the method calls after preparing your class by returning the object itself. Therefore, “Method chaining” may save you e.g. much copy & paste or chars to type, reducing typing time for dozens of $obj->method() calls.
<?php //common way class foo { public function one() { echo "one "; } public function two() { echo "two "; } public function three() { echo "three\n\n"; } } $object = new foo(); $object->one(); $object->two(); $object->three(); //with method chaining (note the "return $this;") class bar { public function one() { echo "one "; return $this; } public function two() { echo "two "; return $this; } public function three() { echo "three\n\n"; return $this; } } $object = new bar(); $object->one() ->two() ->three(); ?>
I did not made any performance measurements right now… so I can't say if method chaining is faster/slower in common environments or not. And to be honest, I don't use method chaining for myself:
return $this; within the class methods.