|
create_functionErzeugen einer anonymen (Lambda-Stil) Funktion Beschreibung
string create_function
( string
$args
, string $code
)Erzeugt eine anonyme Funktion anhand der übergebenen Parameter und gibt einen eindeutigen Namen für diese zurück. Achtung
Diese Funktion führt intern eval aus und hat daher die gleichen Sicherheitsprobleme die eval hat. Außerdem zeigt diese Funktion schlechtes Verhalten in anbetracht von Ausführungsgeschwindigkeit und Speicherverbrauch. Wenn Sie PHP 5.3.0 oder neuer einsetzen sollten Sie stattdessen die nativ vorhandenen anonymen Funktionen verwenden. Parameter-ListeNormalerweise werden die Parameter als mit einfachen Anführungszeichen begrenzte Strings übergeben. Der Grund für die Verwendung von einfachen Anführungszeichen ist der Schutz der Variablen vor dem Parsen. Falls sie doppelte Anführungszeichen verwenden, müssen sie die Variablen-Namen escapen, wie z.B. \$avar.
Rückgabewerte
Gibt einen eindeutigen Funktionsnamen als String oder Beispiele
Beispiel #1 Erzeugen einer anonymen Funktion per create_function Dieser Befehl kann z.B. verwendet werden, um eine Funktion anhand von Informationen zu erzeugen, die erst zur Laufzeit vorliegen.
<?phpSie können auch eine allgemeine Handler-Funktion erstellen, die einen mehr oder weniger große Anzahl an Operationen mit einer Liste von Parametern durchführt:
Beispiel #2 Erzeugung einer generellen Bearbeitungsfunktion mit create_function
<?phpDas oben gezeigte Beispiel erzeugt folgende Ausgabe: Wir benutzen nun das erste Array mit anonymen Funktionen Parameter: 2.3445, M_PI etwas Trigonometrie: -1.6291725057799 eine Hypotenuse: 3.9199852871011 b*a^2 = 4.8103313314525 min(b^2+a, a^2,b) = 8.6382729035898 ln(a)/b = 0.27122299212594 Wir benutzen nun das zweite Array mit anonymen Funktionen ** "Twas the night" und "Twas brilling and the slithy toves" ** Sehen für mich ähnlich aus! (unter Betrachtung der ersten 3 Zeichen) CRCs: -725381282, 342550513 similar(a,b) = 11(45.833333333333%) Aber wahrscheinlich liegt der häufigste Anwendungsfall für Funktionen im Lambda-Stil (anonym) bei den Callback-Funktionen, also z.B. beim Gebrauch von array_walk oder usort.
Beispiel #3 Gebrauch der anonymen Funktionen als Callback-Funktion
<?phpDas oben gezeigte Beispiel erzeugt folgende Ausgabe: Array ( [0] => the mango [1] => a mango [2] => that mango [3] => this mango ) Ein Array con Zeichenketten sortiert von der kürzesten zur längsten
<?phpDas oben gezeigte Beispiel erzeugt folgende Ausgabe: Array ( [0] => small [1] => larger [2] => a big string [3] => it is a string thing ) Sortiert von der Längsten zur Kürzesten
<?phpDas oben gezeigte Beispiel erzeugt folgende Ausgabe: Array ( [0] => it is a string thing [1] => a big string [2] => larger [3] => small ) |