首頁 > php教程 > PHP源码 > 一个基于PHP的事件机制

一个基于PHP的事件机制

PHP中文网
發布: 2016-05-25 17:14:40
原創
1240 人瀏覽過

php代码

<?php
//EventUtils:

final class EventArgs { 
}

interface EventHandler { 
public function Invoke($Sender, EventArgs $E); 
}

class Event { 
private $EventHandlerList = array ();

public function AddEventHandler(EventHandler $EventHandler) { 
   $this->EventHandlerList[] = $EventHandler; 
}

public function DeleteEventHandler(EventHandler $EventHandler) { 
   $Index = array_search($EventHandler, $this->EventHanlerList); 
   array_splice($this->EventHanlerList, $Index, 1); 
} 

public function Invoke($Sender, EventArgs $E) { 
   foreach ($this->EventHandlerList as $EventHandler) { 
    $EventHandler->Invoke($Sender, $E); 
   } 
}

}

//Test Case:

class TestEventHandler implements EventHandler { 
public function Invoke($Sender, EventArgs $E) { 
   // echo "Hello, ".$Sender; 
} 
}

TestEvent();

function TestEvent() { 
   $Event = new Event(); 
   $EventHandler = new TestEventHandler(); 
   $Event->AddEventHandler($EventHandler); 
   $Event->Invoke($Event, new EventArgs()); 
}

//Output:

//Hello, Object id #5ok.

?>
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板