婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP觀察者模式實例分析【對比JS觀察者模式】

PHP觀察者模式實例分析【對比JS觀察者模式】

熱門標簽:余姚電話機器人 電銷機器人問門薩維品牌my 廣東廣州在怎么申請400電話 咸寧銷售電銷機器人系統 百度地圖標注偏差 外呼系統能給企業帶來哪些好處 百度地圖怎樣標注圖標 400電話蘭州申請請 開發地圖標注類網站

本文實例講述了PHP觀察者模式。分享給大家供大家參考,具體如下:

1.用js實現觀察者模式

!DOCTYPE html>
html>
head>
    title>/title>
    style type="text/css">
    div{width: 100px;height: 100px;border: 1px #999 solid;margin-bottom: 5px;}
    /style>
/head>
body>
!--
我們讓div對象觀察select的變化,selecte變化就會通知這個2個對象,并引起這2個對象的變化,實現觀察者模式。
 -->
 h1>用觀察者模式切換頁面風格/h1>
 select>
     option value="male">男式風格/option>
     option value="female">女士風格/option>
 /select>
 button onclick="t1()">觀察學習區/button>
 button onclick="t2()">不觀察學習區/button>
 div id="content">我是內容/div>
 div id="ad">我是廣告/div>
 div id="study">學習/div>
/body>
script type="text/javascript">
    var sel = document.getElementsByTagName('select')[0];
    sel.observers = {};
    sel.attach = function(key,obj){
        this.observers[key] = obj;
    }
    sel.detach = function(key){
        delete this.observers[key];
    }
    sel.onchange = sel.notify = function(){
        for(var key in this.observers){
            this.observers[key].update(this);
        }
    }
    //客戶端
    var content = document.getElementById('content');
    var ad = document.getElementById('ad');
    content.update = function(ob){
        if (ob.value == 'male') {
            this.style.backgroundColor = 'gray';
        }else if(ob.value == 'female'){
            this.style.backgroundColor = 'pink';
        }
    }
    ad.update = function(ob){
        if (ob.value == 'male') {
            this.innerHTML = '汽車';
        }else if(ob.value == 'female'){
            this.innerHTML = '減肥';
        }
    }
    //讓content觀察select的變化
    sel.attach('content',content);
    sel.attach('ad',ad);
    //新增監聽study區
    var study = document.getElementById('study');
    study.update = function(ob){
        if (ob.value == 'male') {
            this.innerHTML = '學習計算機';
        }else if(ob.value == 'female'){
            this.innerHTML = '學習美容';
        }
    }
    sel.attach('study',study);
    function t1(){
        sel.attach('study',study);
    }
    function t2(){
        sel.detach('study');
    }
/script>
/html>

2.用php實現觀察模式

?php
//php實現觀察者
//php5中提供觀察者observer和被觀察者subject的接口
class User implements SplSubject
{
    public $lognum;
    public $hobby;
    protected $observers = null;
    public function __construct($hobby)
    {
        $this->lognum = rand(1,10);
        $this->hobby = $hobby;
        $this->observers = new SplObjectStorage();
    }
    public function login()
    {
        //操作session等
        $this->notify();
    }
    public function attach(SPLObserver $observer)
    {
        $this->observers->attach($observer);
    }
    public function detach(SPLObserver $observer)
    {
        $this->observers->detach($observer);
    }
    public function notify()
    {
        $this->observers->rewind();
        while ($this->observers->valid()) {
            $observer = $this->observers->current();
            $observer->update($this);
            $this->observers->next();
        }
    }
}
//用戶安全登錄模塊
class Safe implements SPLObserver
{
    public function update(SplSubject $subject)
    {
        if ($subject->lognum  3) {
            echo '這是第' . $subject->lognum . '次安全登錄br>';
        }else{
            echo '這是第' . $subject->lognum . '次登錄,異常br>';
        }
    }
}
//廣告模塊
class Ad implements SPLObserver
{
    public function update(SplSubject $subject)
    {
        if ($subject->hobby == 'sports') {
            echo '英超開始啦br>';
        }else{
            echo '好好學習br>';
        }
    }
}
//實施觀察
// $user = new User('sports');
$user = new User('study');
$user->attach(new Safe());
$user->attach(new Ad());
$user->login();//登錄

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

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

您可能感興趣的文章:
  • PHP設計模式之觀察者模式入門與應用案例詳解
  • PHP 觀察者模式深入理解與應用分析
  • php模式設計之觀察者模式應用實例分析
  • PHP使用觀察者模式處理異常信息的方法詳解
  • php設計模式之觀察者模式定義與用法經典示例
  • PHP中常用的三種設計模式詳解【單例模式、工廠模式、觀察者模式】
  • PHP設計模式之觀察者模式定義與用法分析
  • PHP觀察者模式定義與用法實例分析
  • 解析PHP觀察者模式Observer

標簽:十堰 鷹潭 臨沂 銅陵 衡陽 麗江 巴彥淖爾 重慶

巨人網絡通訊聲明:本文標題《PHP觀察者模式實例分析【對比JS觀察者模式】》,本文關鍵詞  PHP,觀察者,模式,實例分析,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP觀察者模式實例分析【對比JS觀察者模式】》相關的同類信息!
  • 本頁收集關于PHP觀察者模式實例分析【對比JS觀察者模式】的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 瑞丽市| 郴州市| 若羌县| 沙湾县| 乌苏市| 都安| 蕉岭县| 湄潭县| 岳池县| 淮北市| 丰城市| 阳曲县| 嘉黎县| 绥芬河市| 准格尔旗| 邻水| 腾冲县| 铁力市| 慈溪市| 岳池县| 尼玛县| 汉川市| 宜州市| 阳江市| 浮山县| 朔州市| 长丰县| 湘乡市| 德惠市| 安西县| 潞城市| 叙永县| 大冶市| 蒙自县| 益阳市| 剑河县| 靖边县| 鄂托克前旗| 台湾省| 昂仁县| 南丰县|