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.