亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP使用標準庫spl實現的觀察者模式示例

2024-05-05 00:04:52
字體:
來源:轉載
供稿:網友

本文實例講述了PHP使用標準庫spl實現的觀察者模式。分享給大家供大家參考,具體如下:

前面使用純php實現了一個觀察者模式(php觀察者模式), 現在使用php標準庫spl在次實現觀察者模式,好處是:隨意的生成您想使用的觀察者!

<?php/** * Created by PhpStorm. * User: evolution * Date: 14-12-27 * Time: 下午5:50 */class Login implements SplSubject {  private $storage;  public $status;  public $ip;  const LOGIN_ACCESS = 1;  const LOGIN_WRONG_PASS = 2;  const LOGIN_USER_UNKNOWN = 3;  function __construct(){    $this->storage = new SplObjectStorage();  }  function attach (SplObserver $observer) {    $this->storage->attach($observer);  }  function detach(SplObserver $observer){    $this->storage->detach($observer);  }  function notify(){    foreach ($this->storage as $obs) {      $obs->update($this);    }  }  /**   * @author jichao.wang   * 執行登陸   */  function handleLogin()  {    $ip = rand(1,100);    switch (rand(1, 3)) {      case 1:        $this->setStatus(self::LOGIN_ACCESS, $ip);        $ret = true;        break;      case 2:        $this->setStatus(self::LOGIN_WRONG_PASS, $ip);        $ret = false;        break;      case 3:        $this->setStatus(self::LOGIN_USER_UNKNOWN, $ip);        $ret = false;        break;    }    /**     * handle event     */    $this->notify();    return $ret;  }  /**   * @param $status   * @author jichao.wang   * set login status   */  function setStatus($status,$ip)  {    $this->status = $status;    $this->ip = $ip;  }  /**   * @return mixed   * @author jichao.wang   * get login status   */  function getStatus()  {    return $this->status;  }}/** * 只針對登陸的貫觀察者 * Class LoginObserver */abstract class LoginObserver implements SplObserver {  private $login;  function __construct(Login $login){    $this->login = $login;    $login->attach($this);  }  /**   * 對外統一的訪問點   * @param SplSubject $subject   */  function update( SplSubject $subject ){    if($subject === $this->login){      $this->doUpdate($subject);    }  }  abstract function doUpdate( Login $login );}/** * Class EmailObserver */class EmailObserver extends LoginObserver{  //不同功能的觀察者實現不同的功能  function doUpdate( Login $login ){    $status = $login->getStatus();    if($status == Login::LOGIN_ACCESS){//      $this->sendMail('用戶ip:'.$observable->ip.'登陸成功!');      echo __CLASS__.'用戶ip:'.$login->ip.'登陸成功!'.'------------------';    }    if($status == Login::LOGIN_WRONG_PASS){//      $this->sendMail('用戶ip:'.$observable->ip.'登陸失敗,密碼錯誤!');      echo __CLASS__.'用戶ip:'.$login->ip.'登陸失敗,密碼錯誤!'.'------------------';    }    if($status == Login::LOGIN_USER_UNKNOWN){//      $this->sendMail('用戶ip:'.$observable->ip.'登陸失敗,無此用戶!');      echo __CLASS__.'用戶ip:'.$login->ip.'登陸失敗,無此用戶!'.'------------------';    }  }}//實例化登陸信息$login = new Login();//實現發郵件觀察者new EmailObserver($login);//開始登陸$login->handleLogin();

運行結果:

EmailObserver用戶ip:77登陸成功!------------------

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久亚洲精品国产亚洲老地址| 91地址最新发布| 亚洲肉体裸体xxxx137| 亚洲国产婷婷香蕉久久久久久| 欧美日韩一区二区三区| 欧美久久精品一级黑人c片| 国内精品美女av在线播放| 日韩在线观看高清| 日韩欧美国产视频| 欧美大片欧美激情性色a∨久久| 久久免费福利视频| 成人性生交大片免费看视频直播| 日韩电影中文 亚洲精品乱码| 岛国视频午夜一区免费在线观看| 久久人91精品久久久久久不卡| 久久视频在线看| 中文字幕一精品亚洲无线一区| 久久亚洲国产精品| 亚洲电影免费观看高清完整版在线| 日韩av电影在线播放| 九九精品在线播放| 精品国偷自产在线| 欧美极度另类性三渗透| 久久91精品国产| 精品久久久一区二区| 午夜精品福利电影| 国产午夜精品全部视频播放| 国产日韩av在线播放| 久久99国产精品自在自在app| 国产欧美日韩精品专区| 一区二区三区无码高清视频| 韩国视频理论视频久久| 亚洲国产女人aaa毛片在线| 欧美成人免费全部观看天天性色| 久久精品这里热有精品| 在线播放亚洲激情| 久久99久久久久久久噜噜| 奇门遁甲1982国语版免费观看高清| 日产精品99久久久久久| 精品呦交小u女在线| 欧美色xxxx| 欧美亚州一区二区三区| 国产精选久久久久久| 中文字幕亚洲自拍| 一本大道亚洲视频| 揄拍成人国产精品视频| 国产精品国产三级国产aⅴ9色| 一区二区三区亚洲| 欧美电影在线观看| 久久久爽爽爽美女图片| 亚洲国产第一页| 怡红院精品视频| 欧美国产日本高清在线| 精品国产一区二区三区久久久狼| 亚洲自拍偷拍一区| 在线观看欧美日韩国产| 国产成人精品免费视频| 国产亚洲美女精品久久久| 欧美成年人网站| 青草青草久热精品视频在线网站| 91日本在线视频| 国产主播喷水一区二区| 国产精品中文久久久久久久| 国产精品亚洲激情| 欧美一级淫片videoshd| 欧美成人午夜视频| 日韩av成人在线观看| 精品福利免费观看| 欧美激情亚洲激情| 日韩视频免费中文字幕| 亚洲欧美日韩直播| 国产mv免费观看入口亚洲| 成人黄色短视频在线观看| 日韩中文字幕国产| 亚洲精品v欧美精品v日韩精品| 成人午夜高潮视频| 91精品综合久久久久久五月天| 欧美一区二区影院| 久久国产精品首页| 亚洲性av在线| 国内揄拍国内精品| 国产精品精品一区二区三区午夜版| 国产精品一区二区三区在线播放| 国产精品福利在线| 欧美专区第一页| 成人免费看片视频| 久久精品99无色码中文字幕| 色悠久久久久综合先锋影音下载| 亚洲电影免费观看高清| 精品国产91久久久久久老师| 欧美日韩免费看| 久久理论片午夜琪琪电影网| 日韩高清欧美高清| 日韩精品在线影院| 久久久电影免费观看完整版| 亚洲人精品午夜在线观看| 精品久久久久久久中文字幕| 日韩a**站在线观看| 亚洲第一天堂av| 青青草99啪国产免费| 亚洲欧美中文日韩v在线观看| 色一区av在线| 91亚洲精品在线观看| 国产高清在线不卡| 欧美一区二区三区精品电影| 久久激情视频免费观看| 久久中文字幕视频| 亚洲加勒比久久88色综合| 亚洲欧美日韩久久久久久| 亚洲人成毛片在线播放| 国产精品大陆在线观看| 欧美成人精品xxx| 日韩av免费一区| 91久久久久久久久久久| 久久久久中文字幕| 欧美亚洲在线视频| 国产精品青草久久久久福利99| 欧美性猛交xxxxx水多| 久久久97精品| 一区二区三区视频免费在线观看| 日韩欧美一区视频| xvideos成人免费中文版| 国产视频在线一区二区| 久久乐国产精品| 青青在线视频一区二区三区| 亚洲国产精品久久精品怡红院| 亚洲精品美女网站| 国产精品吴梦梦| 在线精品高清中文字幕| 国产一区二区三区久久精品| 国产精品一区av| 成人久久18免费网站图片| 91国产一区在线| 92国产精品久久久久首页| 日韩在线一区二区三区免费视频| www.亚洲免费视频| 粗暴蹂躏中文一区二区三区| 久久久91精品国产| 国产午夜精品全部视频在线播放| 欧美激情一区二区三区高清视频| 日本一区二区三区在线播放| 亚洲va久久久噜噜噜久久天堂| 中文字幕一区二区精品| 久久久黄色av| 免费91麻豆精品国产自产在线观看| 亚洲自拍另类欧美丝袜| 亚洲图片欧美日产| 亚洲国产一区二区三区四区| 久久综合国产精品台湾中文娱乐网| 中文字幕日本精品| 国内偷自视频区视频综合| 亚洲sss综合天堂久久| 91精品国产99久久久久久| 精品久久香蕉国产线看观看亚洲| 精品国产依人香蕉在线精品| 欧美日韩国产综合视频在线观看中文| 另类美女黄大片| 欧美成在线观看| 国产成人精品免费视频| 亚洲最大的网站| 久久精品99久久香蕉国产色戒| 日韩精品在线观看一区二区| 久久亚洲精品一区二区| 国产精品精品视频一区二区三区|