Lo aplicas cuando tus "metodos" regresan otro objeto, debes de tener la documentacion nescesaria para eso.
Es decir es dependiente del resultado que te de la funcion por decir puedes probar esto:
Código PHP:
class foo {
public function __construct() {
}
public function bar() {
return $this;
}
public function write( $something ) {
echo $something;
}
}
y lo puedes usar asi:
Código PHP:
$foo = new foo();
$foo2 = $foo->bar();
$foo2->write( "blah" );
// o tambien asi:
$foo = new foo();
$foo->bar()->bar()->bar()->bar()->bar()->bar()->write( "blah" );
Esto es posible porque el valor de retorno de bar, es la misma clase foo, que iniciamos.