Der Martin: While Syntax falsch?

Beitrag lesen

Hallo,

in vielen Stellen meines PHP Projects habe ich Stellen wie;
$dir=opendir($path);
while ($file = readdir ($dir)) {
...
}

Was mir aber aufgefallen ist, sind viele Warnmeldungen wie:
bool-assign : Assignment in condition

das ist dann wohl die Fürsorglichkeit des Parsers, der dir sagen will: Du hast da eine Zuweisung, wo man eher einen Vergleich erwarten würde. Merke: Das ist eine Warnung, kein Fehler.

Dabei ist der zitierte Code natürlich sowohl syntaktisch richtig, als auch sinnbehaftet: "Rufe readdir() auf, weise das Ergebnis gleich zu, und wenn es nicht Null ist, mach mit der Schleife weiter."

In einem Zend Forum sagte man mir man sollte die While Schleife mit zwei zusätzlichen Klammern schreiben, also,
while (($row = $result->fetch(PDO::FETCH_ASSOC))){
und tatsächlich kommt dann in Zend Studio die Meldung nicht mehr.

Naja, so kann man den Parser auch veräppeln. ;-)

Zusätzlich wurde auch noch die PHP Doku als fehlerhaft dargestellt.

Warum? Weil sie die beschriebenen Code-Schnipsel empfiehlt? Unsinn. Das ist völlig korrekt, nur passt es vielleicht manchen Programmierern nicht in ihr Schema, dass das Argument eines if- oder while-Statements immer eine Vergleichsoperation sein müsste. Dabei darf es ein beliebiger Ausdruck sein.

Ich bin nun etwas verunsichert und weiss nicht so recht ob ich den Code so lassen soll wie bisher oder ob ich alles umstellen soll.

Lass es so, wie es ist. Daran ist nichts auszusetzen.

So long,
 Martin

--
Die neue E-Mailadresse des Papstes: mailto:urbi@orbi