6.12. Creating Dynamic Functions
Problem
You want to create and define a function as your program is running.
Solution
Use create_function( )
:
$add = create_function('$i,$j', 'return $i+$j;'); $add(1, 1); // returns 2
Discussion
The first parameter to create_function( )
is a string that contains the arguments for
the function, and the second is the function body. Using
create_function( )
is exceptionally slow, so if
you can predefine the function, it’s best to do so.
The most frequently used case of create_function( )
in action is to create custom sorting functions for
usort( )
or array_walk( )
:
// sort files in reverse natural order usort($files, create_function('$a, $b', 'return strnatcmp($b, $a);'));
See Also
Recipe 4.18 for information on
usort( )
; documentation on
create_function( )
at
http://www.php.net/create-function and on
usort( )
at
http://www.php.net/usort.
Get PHP Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.