Se incateno alcuni setter e uno di loro non restituisce $ this, allora avrò un errore fatale. Ma forse è una buona cosa.
$object = new object();
$object->set('name','foo')->set('number',12)->set('color'=>'brown');
class object {
protected $name;
protected $number;
protected $color;
protected $allowed_to_set = array('name','color');
public function set($property,$value) {
if(!in_array((string)$property,$this->allowed_to_set)) {
return false;
} else {
$this->$property = $value;
return $this;
}
}
}