observers[] = $observer; } public function detachObserver(Observer $observer) { $key = array_search($observer, $this->observers); if ($key !== false) { unset($this->observers[$key]); } } public function notifyObservers() { foreach ($this->observers as $observer) { $observer->update($this); } } } ?>