本文实例讲述了PHP观察者模式。分享给大家供大家参考,具体如下:
?php//观察者模式//抽象主题类interface Subject html' target='_blank'>public function attach(Observer $Observer); public function detach(Observer $observer); //通知所有注册过的观察者对象 public function notifyObservers();//具体主题角色class ConcreteSubject implements Subject private $_observers; public function __construct() $this- _observers = array(); //增加一个观察者对象 public function attach(Observer $observer) return array_push($this- _observers,$observer); //删除一个已经注册过的观察者对象 public function detach(Observer $observer) $index = array_search($observer,$this- _observers); if($index === false || !array_key_exists($index, $this- _observers)) return false; unset($this- _observers[$index]); return true; //通知所有注册过的观察者 public function notifyObservers() if(!is_array($this- _observers)) return false; foreach($this- _observers as $observer) $observer- update(); return true;//抽象观察者角色interface Observer //更新方法 public function update();//观察者实现class ConcreteObserver implements Observer private $_name; public function __construct($name) $this- _name = $name; //更新方法 public function update() echo Observer .$this- _name. has notify $Subject = new ConcreteSubject();//添加第一个观察者$observer1 = new ConcreteObserver( baixiaoshi $Subject- attach($observer1);echo the first notify: $Subject- notifyObservers();//添加第二个观察者$observer2 = new ConcreteObserver( hurong echo br/ second notify: $Subject- attach($observer2);/*echo $Subject- notifyObservers();echo br/ $Subject- notifyObservers();*/?
运行结果:
the first notify:Observerbaixiaoshi has notify
second notify:
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP !
相关推荐:
Laravel如何利用gulp构建前端资源
如何实现Laravel框架中composer自动加载
以上就是Laravel框架中的PHP观察者模式的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答