title besides title

 

Friday, November 23, 2012

PHP : Functions - [6.13] Creating Dynamic Functions

6.13.1 Problem

You want to create and define a function as your program is running.

6.13.2 Solution

Use create_function( ):
$add = create_function('$i,$j', 'return $i+$j;');

$add(1, 1); // returns 2

6.13.3 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);'));