note 95124 added to functions.anonymous

From: 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

« previous php.notes (#163960) next »