Am Samstag, 16. Juli 2005 12:53 schrieb Ernst May-Jung:
> Am Samstag 16 Juli 2005 00:00 schrieb Silvério Santos:
> > ich habe ein array of strings, die ich als Parameter einer Funktion
> > übergeben möchte. Die Funktion hält jedoch das array für einen einzelnen
> > Parameter.
>
> Was meinst Du mit Deinem letzen Satz?
Also, Beispiel: 
$parameterListe = ARRAY(
        ARRAY("Parameter1", "Parameter2", "Parameter3");
        ARRAY("Parameter1a", "Parameter2a", "Parameter3a");
)

foreach ($parameterListe AS $parameter) {
        <hier die Lösung>
        externe_Funktion(<hier die Lösung>);
}

Da die aufgerufene Funktion nicht von mir ist, ist die naheliegendste Lösung, 
eine interne Verarbeitung zu ändern, nicht machbar. Die Lösung muss also für 
den Aufruf funktionieren.

> > Was kann ich tun, um der Funktion die im Array enthaltenen Strings als
> > einzelne Parameter zu übergeben?
>
> function blafasel( $a=FALSE, $b=FALSE, $C=FALSE, .... )
> Nicht sehr elegant. Da finde ich Tobias Vorschlag, das Array erst in der
> Funktion auseinander zu nehmen eleganter.
>
> > Etwas komplizierter: wie kann bei einer evtl. Lösung die Anzahl der
> > Parameter variieren?
>
> Am leichtesten, indem Du alle Parameter in ein Array packst. Wenn Deine
> Anzahl Parameter endlich und vorhersehbar ist kannst Du obige Lösung
> verwenden. Jedem nicht übergebenen Parameter wird so automatisch FALSE
> zugewiesen.
Die Funktionen verwenden bei optionalen Parametern das Konstrukt oben in der 
Funktions-Deklaration.

> Kann es sein, dass Du so etwas brauchst?:
> int array_walk ( array array, callback function [, mixed userdata] )
Leider nicht, da ich nicht das Array rekursiv verarbeiten will, sondern den 
Inhalt des Arrays für einen einzelnen Funktionsaufruf verwenden muss.

> Gruß
>     Ernst
Trotzdem danke
Silvério
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an