最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php中的觀察者模式簡單實例

 更新時間:2015年01月20日 09:05:58   投稿:junjie  
這篇文章主要介紹了php中的觀察者模式簡單實例,觀察者模式是設(shè)計模式中比較常見的一個模式,包含兩個或者更多的互相交互的類,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下

觀察者模式是設(shè)計模式中比較常見的一個模式,包含兩個或者更多的互相交互的類。這一模式允許某個類觀察另外一個類的狀態(tài),當(dāng)被觀察類的狀態(tài)發(fā)生變化時候,觀察者會進行得到通知進而更新相應(yīng)狀態(tài)。

php的SPL標(biāo)準(zhǔn)類庫提供了SplSubject和SplObserver接口來實現(xiàn),被觀察的類叫subject,負責(zé)觀察的類叫observer。這一模式是SplSubject類維護了一個特定狀態(tài),

當(dāng)這個狀態(tài)發(fā)生變化時候,它就會調(diào)用notify方法。調(diào)用notify方法時,所有之前使用attach方法注冊的SplObserver實例的update方法都會調(diào)用,Demo如下:

復(fù)制代碼 代碼如下:

class DemoSubject implements SplSubject{
    private $observers, $value;
 
    public function __construct(){
        $this->observers = array();
    }
 
    public function attach(SplObserver $observer){
        $this->observers[] = $observer;
    }
 
    public function detach(SplObserver $observer){
        if($idx = array_search($observer, $this->observers, true)){
            unset($this->observers[$idx]);
        }
    }
 
    public function notify(){
        foreach($this->observers as $observer){
            $observer->update($this);
        }
    }
 
    public function setValue($value){
        $this->value = $value;
        $this->notify();
    }
 
    public function getValue(){
        return $this->value;
    }
}
 
class DemoObserver implements SplObserver{
    public function update(SplSubject $subject){
        echo 'The new value is '. $subject->getValue();
    }
}
 
$subject = new DemoSubject();
$observer = new DemoObserver();
$subject->attach($observer);
$subject->setValue(5);

相關(guān)文章

  • php實現(xiàn)URL加密解密的方法

    php實現(xiàn)URL加密解密的方法

    這篇文章主要介紹了php實現(xiàn)URL加密解密的方法,結(jié)合實例形式分析了php針對URL字符串進行加密解密操作的相關(guān)技巧,需要的朋友可以參考下
    2016-11-11
  • PHP+AJAX實現(xiàn)無刷新注冊(帶用戶名實時檢測)

    PHP+AJAX實現(xiàn)無刷新注冊(帶用戶名實時檢測)

    PHP+AJAX實現(xiàn)無刷新注冊(帶用戶名實時檢測)...
    2007-01-01
  • php讀取二進制流(C語言結(jié)構(gòu)體struct數(shù)據(jù)文件)的深入解析

    php讀取二進制流(C語言結(jié)構(gòu)體struct數(shù)據(jù)文件)的深入解析

    本篇文章是對php讀取二進制流(C語言結(jié)構(gòu)體struct數(shù)據(jù)文件)進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP laravel實現(xiàn)導(dǎo)出PDF功能

    PHP laravel實現(xiàn)導(dǎo)出PDF功能

    有時候我們會需要使用PHP導(dǎo)出pdf。這篇文章主要是記錄一下laravel實現(xiàn)導(dǎo)出PDF的兩種方式。文中的示例代碼講解詳細,需要的可以參考一下
    2022-10-10
  • PHP中使用imagick實現(xiàn)把PDF轉(zhuǎn)成圖片

    PHP中使用imagick實現(xiàn)把PDF轉(zhuǎn)成圖片

    這篇文章主要介紹了PHP中使用imagick實現(xiàn)把PDF轉(zhuǎn)成圖片,本文著重講解了2個錯誤的處理,特別是GhostScript錯誤,需要的朋友可以參考下
    2015-01-01
  • 示例詳解Laravel重置密碼代碼重構(gòu)

    示例詳解Laravel重置密碼代碼重構(gòu)

    假如需要使用laravel搭建一個后臺內(nèi)容管理系統(tǒng),但laravel默認的登陸注冊不能滿足目前的需求,重置密碼的話因為是用在后臺,并且不需要發(fā)送郵件進行重置,所以默認的重置密碼肯定是不行的。下面我們一起來看看如何進行Laravel重置密碼重構(gòu)。
    2016-08-08
  • php fread讀取文件注意事項

    php fread讀取文件注意事項

    php fread函數(shù)用于從文件中讀取一定長度的字符,本文章向大家介紹fread讀取文件的實例以及使用該函數(shù)讀取文件需要注意的幾個地方,需要的朋友可以參考一下。
    2016-09-09
  • 比較discuz和ecshop的截取字符串函數(shù)php版

    比較discuz和ecshop的截取字符串函數(shù)php版

    網(wǎng)上看到一篇文章 discuz和ecshop截取字符串的兩個函數(shù),比較了一下兩個版本的函數(shù),都各有局限,只能在特定的前提下使用,但是學(xué)習(xí)一下有利于拓寬思路,了解PHP的擴展功能
    2012-09-09
  • PHP 創(chuàng)建標(biāo)簽云函數(shù)代碼

    PHP 創(chuàng)建標(biāo)簽云函數(shù)代碼

    PHP創(chuàng)建標(biāo)簽云函數(shù)代碼,使用此函數(shù)創(chuàng)建標(biāo)簽云。
    2010-05-05
  • PHP用PDO如何封裝簡單易用的DB類詳解

    PHP用PDO如何封裝簡單易用的DB類詳解

    PDO(php Data Object)是PHP的數(shù)據(jù)對象,它為PHP訪問數(shù)據(jù)庫提供了一種兼容一致的輕量級接口,也就是提供了一個數(shù)據(jù)庫訪問抽象層,這篇文章主要給大家介紹了關(guān)于PHP用PDO如何封裝簡單易用的DB類的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07

最新評論

临泽县| 榆林市| 淮北市| 东安县| 衡山县| 武平县| 漳平市| 望奎县| 新源县| 万宁市| 尚志市| 株洲县| 通海县| 东台市| 安多县| 海淀区| 建德市| 聊城市| 花垣县| 肃北| 嵊泗县| 盐边县| 吴忠市| 龙游县| 合肥市| 赣榆县| 大连市| 焉耆| 石林| 永清县| 姜堰市| 乡宁县| 盘山县| 区。| 灯塔市| 元氏县| 麦盖提县| 宁德市| 广灵县| 喀喇沁旗| 七台河市|