What does "return $this" mean?

MEM picture MEM · May 10, 2011 · Viewed 24.3k times · Source

I'm trying to understand this code, and when I arrived at the final line, I didn't get it. :(

Can I have your help in order to find out, what does return $this mean ?

public function setOptions(array $options) {
    $methods = get_class_methods($this);
    foreach ($options as $key => $value) {
        $method = 'set' . ucfirst($key);
        if (in_array($method, $methods)) {
            $this->$method($value);
        }
    }

    //???? - return what ?
    return $this;
}

Update:
I've removed my comments for better clarification.

Answer

Maerlyn picture Maerlyn · May 11, 2011

This way of coding is called fluent interface. return $this returns the current object, so you can write code like this:

$object
  ->function1()
  ->function2()
  ->function3()
  ;

instead of:

$object->function1();
$object->function2();
$object->function3();