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

一个基于PHP的事件机制

PHP中文网
PHP中文网原创
2016-05-25 17:14:401242浏览

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.

?>
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn