note 95124 added to functions.anonymous
| From: | puskulcuatgmaildotcom at osu1 dot php dot net | Date: | Mon, 14 Dec 2009 20:46:49 +0000 |
| Subject: | note 95124 added to functions.anonymous | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-163960@lists.php.net to get a copy of this message | ||
hello there!
here is a little code which shows use of the closures as event handlers:
<?php
class Button
{
public $OnBeforeClick;
public $OnAfterClick;
public $Name;
function Button()
{
$this->Name = 'MyButton';
}
public function Click()
{
$this->DoBeforeClick();
echo 'Click!';
$this->DoAfterClick();
}
private function DoBeforeClick()
{
if (isset($this->OnBeforeClick))
{
$Event = $this->OnBeforeClick;
$Event($this);
}
}
private function DoAfterClick()
{
if (isset($this->OnAfterClick))
{
$Event = $this->OnAfterClick;
$Event($this);
}
}
}
//eclipse may warn here about syntax error but no problem, it runs well.
$BeforeClickEventHandler = function($Sender) { echo $Sender->Name . ' (Before
Click)'; };
$AfterClickEventHandler = function($Sender) { echo $Sender->Name . ' (After Click)';
};
$MyWidget = new Button();
$MyWidget->OnBeforeClick = $BeforeClickEventHandler;
$MyWidget->OnAfterClick = $AfterClickEventHandler;
$MyWidget->Click();
?>
output:
MyButton (Before Click)
Click!
MyButton (After Click)
i hope you find this useful.
regards.
emre
----
Server IP: 69.147.83.197
Probable Submitter: 85.108.45.26
----
Manual Page -- http://www.php.net/manual/en/functions.anonymous.php
Edit -- https://master.php.net/note/edit/95124
Del: integrated -- https://master.php.net/note/delete/95124/integrated
Del: useless -- https://master.php.net/note/delete/95124/useless
Del: bad code -- https://master.php.net/note/delete/95124/bad+code
Del: spam -- https://master.php.net/note/delete/95124/spam
Del: non-english -- https://master.php.net/note/delete/95124/non-english
Del: in docs -- https://master.php.net/note/delete/95124/in+docs
Del: other reasons-- https://master.php.net/note/delete/95124
Reject -- https://master.php.net/note/reject/95124
Search -- https://master.php.net/manage/user-notes.php