Cet article présente principalement le modèle d'observateur PHP, et analyse les techniques simples de définition et d'utilisation du modèle d'observateur PHP sous forme d'exemples. Les amis dans le besoin peuvent s'y référer
Cet article décrit l'observateur PHP. modèle avec exemples. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
<?php //观察者模式 //抽象主题类 interface Subject { 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();*/ ?>
Résultats en cours :
la première notification : Observerbaixiaoshi a notifié
deuxième notification :
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour un contenu plus connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Comment Laravel utilise gulp pour créer des ressources frontales
Comment implémenter le chargement automatique de composer dans le framework Laravel
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!