phpbar.de logo

Mailinglisten-Archive

[php] if Abfrage auf eine Funktion die ein Array zurückgibt

[php] if Abfrage auf eine Funktion die ein Array zurückgibt

Thomas Koudela thomas at koudela.net
Sam Sep 16 13:30:55 CEST 2006


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