• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP观察者模式示例【Laravel框架中有用到】

    本文实例讲述了PHP观察者模式。分享给大家供大家参考,具体如下:

    ?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();*/
    ?>
    
    

    运行结果:

    the first notify:Observerbaixiaoshi has notify
    second notify:

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP设计模式之观察者模式(Observer)详细介绍和代码实例
    • php观察者模式应用场景实例详解
    • ruby、javascript、php中的观察者模式实现代码
    • PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
    • PHP实现的观察者模式实例
    • php设计模式之适配器模式原理、用法及注意事项详解
    • php设计模式之工厂模式用法经典实例分析
    • php设计模式之单例模式用法经典示例分析
    • php设计模式之观察者模式定义与用法经典示例
    • php设计模式之职责链模式定义与用法经典示例
    • php模式设计之观察者模式应用实例分析
    上一篇:PHP堆栈调试操作简单示例
    下一篇:PHP7.1实现的AES与RSA加密操作示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP观察者模式示例【Laravel框架中有用到】 PHP,观察者,模式,示例,Laravel,