Download 2 Erweiterte Syntax
Transcript
2 Erweiterte Syntax
Variable Funktionsnamen
Was wir über variable Variablennamen gesagt haben, gilt auch für Funktionsnamen. Auch Funktionsnamen können mithilfe von Variablen erzeugt werden, was eine dynamische Datenverarbeitung, Installation von modifizierbaren Rückrufen u.ä. ermöglicht. Anstatt Funktionsnamen fest im Programm
einzugeben, können Sie Zeichenkettenvariablen verwenden, um die Funktion
anzugeben, die Sie aufrufen möchten:
function my_func($a, $b)
{
print("$a, $b");
}
$function = "my_func";
$function(1, 2);
Nach der Deklaration von my_func() wird die Variable $function der Zeichenkette my_func zugeordnet. Da diese Zeichenkette mit dem Namen der Funktion identisch ist, die Sie aufrufen möchten, können Sie diese beim Aufruf von
my_func() verwenden.
Dies ist natürlich ein recht einfaches Beispiel für variable Funktionsnamen.
Sie sind sehr nützlich, wenn Sie, je nach Anzahl der variablen Flags, zwischen
mehreren Funktionen hin- und herschalten müssen.
Angenommen, Sie wollten Email-Anhänge dekodieren. Diese können verschieden Formate haben, z.B. base64 oder uuencoded, um nur zwei Beispiele
zu nennen. Wenn Sie einen »geschlossenen« Parser generieren, der nur eine
der beiden Kodierungen erkennt, lässt sich dieser nur schwer erweitern.
Sobald Sie neue Formate benötigen, stecken Sie fest. Dies ist ein klassischer
Fall für variable Funktionsnamen:
function decode_base64($encoded_data)
{
// do something with the encoded data
return($decoded_data);
}
function decode_uuencoded($encoded_data)
{
116