Moin!
Mein Problem gestaltet sich aber anders, und von ASP weiß ich, dass man auch Parameter in der Mitte auslassen können müsste - falls das hier auch geht:
Nein, das geht bei PHP nicht. Weglassen kannst Du nur Parameter, die hinten stehen.
Man kann der Funktion eine beliebige Anzahl von Parametern übergeben. Diese müssen in der function-Definition nicht aufgeführt sein. Und man kann dann aus den übergebenen Parametern auch irgendwie (das ist Aufgabe des Programmierers) rausfinden, welchen Sinn die Parameter haben sollen.
http://www.php.net/manual/en/functions.arguments.php#functions.variable-arg-list
Das Problem ist: Wenn man wirklich beliebige, gleichartige Werte übergibt (beispielsweise einen, zwei, drei oder vier Strings), dann ist es ziemlich schwer für die Funktion, die Parameter richtig zuzuordnen.
Beispiel: Wenn du eine Funktion schreibst, die wahlweise einen deutschen String, einen englischen String oder beide entgegennimmt - wie soll die Funktion bei nur einem String erkennen, ob es ein deutscher oder englischer String ist?
Wenn du Parameter in der Funktionsdefinition angibst und einige davon variabel sind, dann hast du die Pflicht, entweder keinen String, einen deutschen String oder einen deutschen _und_ einen englischen String anzugeben - und PHP weiß, welcher String wie zuzuordnen ist.
Wahlweise kannst du natürlich einfach ein Array bzw. einen Hash übergeben, in dem die Strings entsprechend eingetragen und gekennzeichnet sind:
$text = array ('de' => "deutscher String", 'en' => "english string");
variable_funktion($text);
Die Funktion kann auf das Vorhandensein von 'de' und 'en' variabel prüfen und weiß immer, was deutsch und was englisch ist.
- Sven Rautenberg
Diese Signatur gilt nur am Freitag.