Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

YODA Conditions

Yoda dreht bekanntlich gern Satzbestandteile um. Das hat jetzt noch nichts direkt mit PHP zu tun. Zäumen wir das Pferd mal andersherum auf. Was fällt hier auf?

function doSomething()  {      return false;  }    $res = doSomething();    if ($res = false)  {      echo "1";  }  else  {      echo "2";  }  

Der geübte Debugger sieht sofort: Im if haben wir eine Zuweisung und keinen Vergleich. PHP findet das voll okay, IDEs geben in der Regel einen Warnhinweis. Raus kommt im Übrigen 2.

Was wäre jetzt, wenn wir frei nach Yoda geschrieben hätten:

if (false = $res)  {      echo "1";  }  else  {      echo "2";  }  

Parse error: syntax error, unexpected ‚=‘. Wunderbar! Man kann einer Konstanten (wie false) keinen Wert zuweisen, was wir hier auf Grund unseres Tippfehlers (nur ein =) versucht hätten. Ist letztendlich eine Gewöhungssache. Wenn man QM-Tools wie den PHP Code Sniffer verwendet, fliegt solch ein Fehler sowieso auf, zudem hat man ja durch TDD ohnehin keine Fehler im Code, gell ;).

Besonders umdenken muss ich bei einer Verknüpfung von mehreren Ausdrücken im if oder > und <. Beispiel?

if (4 <= $var && 10 >= $var) {}  

vs.

if ($var >= 4 && $var <= 10) {}  

Beide Vergleiche sind vollständig äquivalent, jedoch komme ich – gewohnheitsbedingt – mit dem zweiten wesentlich besser hin.

Bildquelle

yoda