PHP and javascript snippets you can copy and paste.

Thursday, March 15, 2007

fnc_wrap($fnc)

/**
* wrap
*
* Creates a wrapper around a function and returns the wrapper as a function.
* @param $fnc.
* @return function.
* Credit:
* http://www.andyhsoftware.co.uk/space
* http://www.thescripts.com/forum/thread9037.html
* Example usage:
* function times($a,$b){
*$a * $b;
* }
* $dbl = wrap('times',2);
* echo '450 doubled is ' . $dbl(456);
*/
function fnc_wrap($fnc) {
$args = func_get_args();
array_shift($args);
$lambda = sprintf(
'$args = func_get_args(); ' .
'return call_user_func_array(\'%s\', array_merge(unserialize(\'%s\'),$args));',$fnc, serialize($args));
return create_function('', $lambda);
}