Mailinglisten-Archive |
Hallo Thomas,
Dein Vorschlag eines Funktionsaufrufs mit
"meine_function($wert)['status']" ist in PHP nicht möglich und wie ich
finde aus gutem Grund. Rufst Du eine Funktion ohne Wertzuweisung auf,
sind nach der Abfrage alle Ergebnisse futsch, die nicht global sind.
if (meine_function($wert)['status']) {}
bedeutet also gleichzeitig: Der Rest des Ergebnisarrays ist bei diesem
Aufruf unwichtig. Warum sollte "meine_function" ein Ergebnis liefern,
das bei diesem Aufruf nicht gebraucht wir? Bei einfachen Funktionen mag
diese Frage irrelevant sein, komplexere Funktionen können bei Beachtung
dieser Frage jedoch leichter gewartet oder im Nachhinein optimiert
werden. Wenn "meine_function" um einen (optionalen) Parameter
"$statusrueckgabe" erweitert wird und beim Übergabewert "true" nur den
Status statt dem ganzen Array zurückgibt, so ist dies in meinen Augen
ein Schritt in eine klarere Programmierweise.
Die zweite (IMHO unschöne) Möglichkeit wäre, sobald innerhalb der
Funktion "meine_function" dem "$rueckgabearray['status']" "false"
zugeordnet wird, diese mit "return false;" zu beenden. Ist der Status
dagegen != "false", so wird das Array zurückgegeben und PHP wird ganz
normal die If-Anweisung abarbeiten.
Gruß, Thomas
> Hi,
>
> ist so was möglich. Eine Funktion gibt ein Array zurück und
> ich möchte diesen Wert gleich in einer if Abfrage verwenden.
>
> if ( meine_function($wert)['status'] ) {
> }
>
> statt
>
> $erg = meine_function($wert);
> if ( $erg['status'] ) {
> }
>
> Gruß
>
> Thomas
php::bar PHP Wiki - Listenarchive