Richtige If-Kurzform?

nitrit

Angesehenes Mitglied
Ich wollte nur kurz wissen, ob die kurzform so richtig funktioniert, zumindest erhalte ich keinen PHP-Fehler.
Im Normalfall benutze ich nämlich die lange Form, möchte aber hier ein wenig Code sparen:

CODE function dir_exists(){
if(file_exists($this->dir))
return true;
else return false;
}
 
Hallo,

diese Form ist absolut richtig, wenn auch unüblich und meiner Meinung nach aus Lesbarkeitsgründen unpraktikabel. Wenn du erstmal 5 ineinandergeschachtelte if-Abfragen hast, wirst dich nach den Klammern sehnen :)

Gruß, D.
 
Das Stimmt, allerdings bei solchen Funktionen wie oben beschrieben, ist es übersichtlicher als -{ }-
wink.gif

Bei größeren Funktionen hast du natürlich recht
smile.gif


Danke für die Hilfe übrigens
wink.gif
 
QUOTE (nitrit @ Sa 1.09.2007, 15:18) Ich wollte nur kurz wissen, ob die kurzform so richtig funktioniert, zumindest erhalte ich keinen PHP-Fehler.
Im Normalfall benutze ich nämlich die lange Form, möchte aber hier ein wenig Code sparen:


CODE function dir_exists(){
if(file_exists($this->dir))
return true;
else return false;
}


Noch kürzer:


CODE
if(file_exists($this->dir)) ? return true : return false;

 
QUOTE (Marcel Kruse @ Mo 3.09.2007, 13:56)
CODE
if(file_exists($this->dir)) ? return true : return false;




funktioniert nicht

richtiger wäre:

CODE
return (file_exists($this->dir)) ? true : false;



wobei ich die Schreiweise auch noch einigermaßen gut finde.

Eine If-Bedingung ohne Geschweifte-Klammern ist aber nie zu empfehlen.
Die Lesbarkeit wird durch Klammern extrem erhöht, IMMER
smile.gif


Das Problem ohne Klammern ist, dass beim lesen des Codes nicht auf den ersten Blick klar ist was gemacht wird.

Schreib es also entweder richtig mit Klammern oder wenn du es ganz kurz brauchst so wie oben mit ? und : . Sonst machst du dir und allen die später den Code lesen müssen, das Leben unnötig schwer.
 
das if ist überflüssig, da file_exists bereits einen boolean liefert.

CODE return file_exists($this->dir);


Gruss
 
Bin grad per Google wieder auf dieses Thema gekommen, lustig.

Nun ja, wenn schon, dann auch ein sinnvoller Beitrag.
@Roger:

dann aber gleich

@file_exists, denn so bekommen wir in jedem Fall die Antwort, auch wenn ein fataler Fehler auftritt
smile.gif
 
QUOTE (manuel @ Mo 3.09.2007, 15:35) Schreib es also entweder richtig mit Klammern oder wenn du es ganz kurz brauchst so wie oben mit ? und : . Sonst machst du dir und allen die später den Code lesen müssen, das Leben unnötig schwer.

Die DoppelpunktGeschichte hab ich schon bei C nicht genutzt, war mir zu Krüptisch


wie findest du folgendes


CODE
if ( irgendwas ) $x += $y;
else $a -= $b;


das else schön unterm if
ist doch schön Übersichtlich?


apropo Übersichtlich

CODE
if ( irgendwas ) {
$x += $y;
}
else {
$a -= $b;
}


finde ich gräßlich
Klammern sind bei mir unternander

CODE
if ( irgendwas )
{
$x += $y;
}
else
{
$a -= $b;
}


 
QUOTE (nitrit @ Mo 7.09.2009, 14:26) [...]

@file_exists, denn so bekommen wir in jedem Fall die Antwort, auch wenn ein fataler Fehler auftritt
smile.gif


Selbst dann sollte aber file_exists einen boolean zurückgeben und zwar sollte dieser false (0) sein.

Wenn du auf die Syntax @file_exists ansprichst, so unterdrückst Du nur eine Fehlerausgabe, es hat nicht viel mit der Rückgabe der Funktion selber zu tun.
 
Das ist mir schon klar Sascha
wink.gif

Aber stell dir doch folgende Situation vor:

Du hast ne Community programmiert, nun führt ein User eine Aktion aus und bekommt aus irgend unbekannten Gründen die hässliche Fehlermeldung. Da unterdrücke ich doch lieber die Fehlermeldung und schmeisse z.B. ne eigene Exception o.ä.

Grüße

PS:
Ich finde die zweite Version grässlich, sie wirkt so komisch. Aber das ist Gewöhnungssache. Ich nehme seit Jahren

CODE
if (bool){
echo 'Hallo Welt!';
}

 
Zurück
Oben