public function addCustomer($name)
    {
        foreach ($this->_observers as $obs) {
            $obs->onChanged($this, $name);
        }
    }
    public function addObserver($observer)
    {
        $this->_observers[] = $observer;
    }
}
class CustomerListLogger implements Observer
{
    public function onChanged($sender, $args)
    {
        echo 'Logger:' . $args . ' Customer has been added to the list' . PHP_EOL;
    }
}
class CustomerListUpdate implements Observer
{
    public function onChanged($sender, $args)
    {
        echo 'MySQL update: insert ' . $args . ' into Customer table ' . PHP_EOL;
        echo '--------------------' . PHP_EOL;
    }
}
$cl = new CustomerList();
$cl->addObserver(new CustomerListLogger());
$cl->addObserver(new CustomerListUpdate());
$cl->addCustomer('Jack');
$cl->addCustomer('Lee');