php中的觀察者模式簡(jiǎn)單實(shí)例_PHP教程
推薦:php 5.6版本中編寫一個(gè)PHP擴(kuò)展的簡(jiǎn)單示例這篇文章主要介紹了php 5.6版本中編寫一個(gè)PHP擴(kuò)展的簡(jiǎn)單示例,本文給出擴(kuò)展實(shí)現(xiàn)代碼、編譯方法、配置方法和使用例子等內(nèi)容,需要的朋友可以參考下 有時(shí)候在php本身沒(méi)有滿足需求的api時(shí)候,需要自己寫相應(yīng)的擴(kuò)展,擴(kuò)展寫完之后進(jìn)行編譯,即可加入自己的開(kāi)發(fā)環(huán)境中,擴(kuò)展ph
這篇文章主要介紹了php中的觀察者模式簡(jiǎn)單實(shí)例,觀察者模式是設(shè)計(jì)模式中比較常見(jiàn)的一個(gè)模式,包含兩個(gè)或者更多的互相交互的類,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
觀察者模式是設(shè)計(jì)模式中比較常見(jiàn)的一個(gè)模式,包含兩個(gè)或者更多的互相交互的類。這一模式允許某個(gè)類觀察另外一個(gè)類的狀態(tài),當(dāng)被觀察類的狀態(tài)發(fā)生變化時(shí)候,觀察者會(huì)進(jìn)行得到通知進(jìn)而更新相應(yīng)狀態(tài)。
php的SPL標(biāo)準(zhǔn)類庫(kù)提供了SplSubject和SplObserver接口來(lái)實(shí)現(xiàn),被觀察的類叫subject,負(fù)責(zé)觀察的類叫observer。這一模式是SplSubject類維護(hù)了一個(gè)特定狀態(tài),
當(dāng)這個(gè)狀態(tài)發(fā)生變化時(shí)候,它就會(huì)調(diào)用notify方法。調(diào)用notify方法時(shí),所有之前使用attach方法注冊(cè)的SplObserver實(shí)例的update方法都會(huì)調(diào)用,Demo如下:
代碼如下: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);
分享:PHP函數(shù)extension_loaded()用法實(shí)例這篇文章主要介紹了PHP函數(shù)extension_loaded()用法,實(shí)例分析了函數(shù)extension_loaded()檢查一個(gè)擴(kuò)展是否已經(jīng)加載的具體用法,并補(bǔ)充說(shuō)明了查看本機(jī)已加載php擴(kuò)展的方法,需要的朋友可以參考下 本文實(shí)例講述了PHP函數(shù)extension_loaded()用法。分享給大家供大家參考。具體分
- php 5.6版本中編寫一個(gè)PHP擴(kuò)展的簡(jiǎn)單示例
- PHP函數(shù)extension_loaded()用法實(shí)例
- php使用CURL偽造IP和來(lái)源實(shí)例詳解
- php+mysql實(shí)現(xiàn)無(wú)限分類實(shí)例詳解
- php截取html字符串及自動(dòng)補(bǔ)全html標(biāo)簽的方法
- php在linux下檢測(cè)mysql同步狀態(tài)的方法
- 將FCKeditor導(dǎo)入PHP+SMARTY的實(shí)現(xiàn)方法
- php通過(guò)Chianz.com獲取IP地址與地區(qū)的方法
- php rsa加密解密使用詳解
- ThinkPHP 404頁(yè)面的設(shè)置方法
- THINKPHP內(nèi)容分頁(yè)代碼分享
- php+mysql刪除指定編號(hào)員工信息的方法
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- 深入php數(shù)據(jù)采集的詳解
- 獲取用戶Ip地址通用方法與常見(jiàn)安全隱患(HTTP_X_FORWARDED_FOR)
- php+Mysqli利用事務(wù)處理轉(zhuǎn)賬問(wèn)題實(shí)例
- Codeigniter實(shí)現(xiàn)發(fā)送帶附件的郵件
- 解讀二十五個(gè)頂級(jí)PHP模板引擎整理
- 詳談PHP文件目錄基礎(chǔ)操作
- php二分法查找數(shù)組是否包含某一元素
- PHP使用gmdate實(shí)現(xiàn)將一個(gè)UNIX 時(shí)間格式化成GMT文本的方法
- php筆記之:有規(guī)律大文件的讀取與寫入的分析
- php將數(shù)組轉(zhuǎn)換成csv格式文件輸出的方法
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-php中的觀察者模式簡(jiǎn)單實(shí)例
。