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 2Discussion
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.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access