/** * @param string $name * @param mixed $value */ public function __set($name, $value) { if (!array_key_exists($name, $this->data) || $this->data[$name] !== $value) { $this->dataChanged[] = $name; parent::__set($name, $value); } }