![](../../banner/microsoft-herz.gif)
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte
Unternehmen im
Anbieterverzeichnis von SELFPHP
:: SELFPHP Forum ::
Fragen rund um die Themen PHP? In über
120.000 Beiträgen finden Sie sicher die passende
Antwort! ![](../../src/link.gif)
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
:: Qozido ::
Die Bilderverwaltung mit Logbuch für
Taucher und Schnorchler. ![](../../src/link.gif)
|
|
create_function ![](../../src/transparent.gif) |
Befehl | Version | Beschreibung | Beispiel | Ausgabe |
Befehl
string create_function ( string $args, string $code ) |
Version
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.
|
Beispiel
<?PHP
$array = array ( 2120.789,
4300,
5980.23,
6359.00,
123.89,
1380.3213,
2345 );
$name = array_walk($array, create_function ( '&$c', 'global $d;
$c = "$d + $c = " . number_format ( ( $d += $c ), 2, ", ", ".");' ) );
for ( $x = 0; $x < count ( $array ); $x++ )
{
echo 'Addiere: ' . $array[$x] . "\n";
}
?>
|
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
|
|
|
|
|
|
![](../../src/transparent.gif)
![Qozido Qozido](../../src/Qozido.gif)
|