6.12 Dynamische Funktionen erzeugen

Problem

Sie möchten eine Funktion anlegen und definieren, während das Programm läuft.

Lösung

Verwenden Sie create_function( ):

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

$add(1, 1); // gibt 2 zurück

Diskussion

Der erste Parameter für create_function( ) ist ein String, der die Argumente der Funktion enthält, und der zweite ist der Funktionsrumpf. Die Verwendung von create_function( ) ist außerordentlich langsam; wenn Sie daher eine Funktion vorab definieren können, sollten Sie dies besser tun.

Meistens wird create_function( ) zur Definition angepasster Sortierfunktionen für usort( ) und array_walk( ) verwendet:

// Dateien in der umgekehrten natürlichen Anordnung sortieren. usort($files, create_function('$a, $b', ...

Get PHP 5 Kochbuch 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.