Bademeister: scheitere an der benutzung von 'mysql_num_rows'

Beitrag lesen

Interessante Thematik. Da ich das erst nicht so recht glauben wollte, habe ich damit etwas experimentiert, und dabei auch gesehen, dass

$c = false or true;
  if ($c) ...

nicht das gleiche ist wie

if (false or true) ...

Natuerlich nicht, aus dem bereits besprochenen Grund mit der Klammerung:

$c = false or true;

entspricht
($c = false) or true;

Das Ergebnis von "or" ist in dem Fall zwar true, aber das wird nicht $c zugewiesen, sondern ueberhaupt nicht ausgewertet. Dasselbe passiert in allen Deinen Beispielen:

$b = 0 or foo($b);

entspricht
($b = 0) or foo($b);

das heisst $b wird gleich 0 gesetzt, und ($b = 0) liefert den Ausdruck 0 an "or", so dass auch foo($b) ausgefuehrt wird. Das hat aber nichts mit der Zuweisung an $b mehr zu tun. $b wurde vorher auf 0 gesetzt, und daher wird 0 an foo() uebergeben.

Viele Gruesse
der Bademeister