note 50821 added to function.override-function

From: Date: Thu, 10 Mar 2005 20:07:14 +0000
Subject: note 50821 added to function.override-function
Groups: php.notes 
Request: Send a blank email to php-notes+get-86220@lists.php.net to get a copy of this message
I thought the example was not very helpful, because it doesn't even override the function with another function. My question was: If I override a function, can I call the ORIGINAL function within the OVERRIDING function? ie, can I do this: <?php override_function('strlen', '$string', 'return override_strlen($string);'); function override_strlen($string){ return strlen($string); } ?> The answer: NO, you will get a segfault. HOWEVER, if you use rename_function to rename the original function to a third name, then call the third name in the OVERRIDING function, you will get the desired effect: <?php rename_function('strlen', 'new_strlen'); override_function('strlen', '$string', 'return override_strlen($string);'); function override_strlen($string){ return new_strlen($string); } ?> I plan to use this functionality to generate log reports every time a function is called, with the parameters, time, result, etc... So to wrap a function in logging, that was what I had to do. ---- Manual Page -- http://www.php.net/manual/en/function.override-function.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+50821 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+50821&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+50821&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+50821&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+50821&report=yes&reason=useless Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+50821&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+50821&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#86220) next »