Problem mit if ($var == 10 or 20 or 30)
H@nnib@ll
- php
Hallo Forumler,
Wie schon aus der Ueberschrift zu sehen habe ich ein Problem mit einer if-Kontrollanweisung! Mein Originalcode sieht so aus:
$count = 1;
if ($count == 10 or 20 or 30 or 40){
echo "</tr><tr>";
}
$count++;
Jedoch wird bei jedem Durchlauf der while-Schleife in der die if-Kontrollanweisung definiert ist das </tr><tr> ausgegeben obwohl $count ja offensichtlich den erforderlichen Wert erfuellt!
Gibt es eine logische Erklaerung? Was mache ich falsch?
Besten Dank im voraus!
Gruss
H@nnib@ll
Hallo Forumler,
moin
Wie schon aus der Ueberschrift zu sehen habe ich ein Problem mit einer if-Kontrollanweisung! Mein Originalcode sieht so aus:
$count = 1;
if ($count == 10 or 20 or 30 or 40){
echo "</tr><tr>";
}
$count++;
Jedoch wird bei jedem Durchlauf der while-Schleife in der die if-Kontrollanweisung definiert ist das </tr><tr> ausgegeben obwohl $count ja offensichtlich den erforderlichen Wert erfuellt!
Gibt es eine logische Erklaerung? Was mache ich falsch?
"or" ist ein befehl, du musst hier aber einen logischen operator verwenden, in diesem fall beduetet || "oder",
also:
$count = 1;
if ($count == 10 || 20 || 30 || 40)
{
echo "</tr><tr>";
}
$count++;
Besten Dank im voraus!
bittschö
Gruss
Fabian
H@nnib@ll
Hi,
if ($count == 10 or 20 or 30 or 40){
selbst wenn $count!=10 ist, ergeben 20, 30 und 40 immer wahre Werte. Da Du diese oder-verknüpfst, reicht ein mal "true", um in den if-Zweig zu gelangen.
Gibt es eine logische Erklaerung? Was mache ich falsch?
Du meinst eigentlich
if ($count==10 or $count==20 or $count==30 or $count==40)
Cheatah
Hoi,
if ($count == 10 or 20 or 30 or 40){
*grausel* das erinnert mich an Cobol. *Da* waere dein Code richtig, abgesehen von
leichten syntaktischen Unterschieden :-)
Aber hier verknuepfst du mit 'or' Ausdruecke. Will heissen, es wird der Reihe
nach ausgewertet, bis ein wahrer Ausdruck gefunden wird. Zuerst wird geschaut,
ob $count gleich 10 ist. Wenn nicht, wird der naechste Ausdruck genommen. Das ist
in diesem Falle '20'. Da 20 ungleich 0 ist, ergibt er 'true'. Ich hoffe, du
verstehst jetzt den Unterschied zwischen der Art, wie Cobol und PHP das
handeln :-)
Gruesse,
CK