note 50343 added to function.call-user-func
| From: | php-general at lists dot php dot net | Date: | Fri, 25 Feb 2005 03:46:56 +0000 |
| Subject: | note 50343 added to function.call-user-func | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-85523@lists.php.net to get a copy of this message | ||
<?php
/*
A very simple event handler dispose and change the latest one I did
*/
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 = null )
{
if( $pDuke == null )
{
call_user_func( array( &$this, "OnEventHandler" ), $this, null );
return;
}
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, "OnEventHandler", null );
$b ->OnEvent();
$b ->OnEvent( $pDuke );
?>
----
Manual Page -- http://www.php.net/manual/en/function.call-user-func.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+50343
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+50343&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+50343&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+50343&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+50343&report=yes&reason=useless
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+50343&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+50343&report=yes
Search -- http://master.php.net/manage/user-notes.php