A simple event handler dispose released by useful callback in PHP 4.x
<?php
class Duke
{
//public:
var $m_pRaiser;
var $m_strRaiserFun;
var $m_objArgs;
//public:
function Duke( $pRaiser,
$strRaiserFun,
$objArgs )
{
$this ->m_pRaiser = $pRaiser;
$this ->m_strRaiserFun = $strRaiserFun;
$this ->m_objArgs = $objArgs;
}//end of constructor
}//end of class Duke
class A
{
//protected:
function OnEventHandler( $sender, $args )//virtual
{
$sender ->SayHello();
}//end of OnEventHandler( $sender, $args )
//public:
function OnEvent( $pDuke )
{
call_user_func( array( $pDuke ->m_pRaiser, $pDuke ->m_strRaiserFun ), $pDuke ->m_pRaiser, $pDuke ->m_objArgs );
}//end of OnEvent( $pDuke )
function SayHello()//virtual
{
echo "A::SayHello" . "<br>";
}//end of SayHello()
}//end of class A
class B extends A
{
//public:
function SayHello()//override
{
echo "B::SayHello" . "<br>";
}//end of SayHello()
}//end of class B
///////////////////////////////////////////////////////////
//Main import to test
//
$a = &new A();
$b = &new B();
$pDuke = &new Duke( $b, "SayHello", null );
$b ->OnEvent( $pDuke );
?>