SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/funktionsreferenz/functions_funktionen/create_function.php
© 2001-2024 E-Mail SELFPHP Inh. Damir Enseleit, info@selfphp.de



create_function


nach unten nach oben Befehl

string create_function ( string $args, string $code )



nach unten nach oben Version

(PHP 4 >= 4.0.1, PHP 5)



nach unten nach oben Beschreibung


Mit create_function() können Sie eine temporäre Funktion erstellen, in der Sie
normalen PHP-Code ausführen lassen können. Der Parameter args enthält die
Parameterliste der temporären Funktion, der Parameter code den Programmcode
(beide als String in einfachen Anführungszeichen). Aus diesen Daten wird eine
temporäre Funktion erstellt, welcher ein eindeutiger Name zugewiesen wird.
Diesen Funktionsnamen gibt create_function() als Ergebnis zurück.
Die Funktion ist sehr empfehlenswert, wenn man dynamisch zur Laufzeit eine
Funktion generieren möchte, etwa weil bestimmte Teile des Codes aus
Benutzereingaben generiert werden müssen.
Im unteren Beispiel wurde mit array_walk() jedes Element des Arrays an die
temporäre (anonyme) Funktion übergeben. Innerhalb der Funktion wurde der Wert
mit der bisherigen Gesamtsumme addiert und mittels der Funktion number_format()
formatiert. 




nach unten nach oben Beispiel


<?PHP
$array 
= array ( 2120.789,
                 
4300,
                 
5980.23,
                 
6359.00,
                 
123.89,
                 
1380.3213,
                 
2345 );

$name array_walk($arraycreate_function '&$c''global $d;
  $c = "$d + $c  = " . number_format ( ( $d +=  $c ), 2, ", ", ".");' 
) );

for ( 
$x 0$x count $array ); $x++ )
{  
    echo 
'Addiere: ' $array[$x] . "\n"
}
?>




nach unten nach oben Ausgabe


Berechnung: + 2120.789 = 2.120,79
Berechnung: 2120.789 + 4300 = 6.420,79
Berechnung: 6420.789 + 5980.23 = 12.401,02
Berechnung: 12401.019 + 6359 = 18.760,02
Berechnung: 18760.019 + 123.89 = 18.883,91
Berechnung: 18883.909 + 1380.3213 = 20.264,23
Berechnung: 20264.2303 + 2345 = 22.609,23