Sorry for maybe dumb question, but i have HUGE problem with one case when i have some int variable with value of 0(zero).
switch ($starost_vozila){
case (0):
switch ($podaci['tip_motora']){
case ("motor1"):
$eko_taksa = 485;
break;
case ("motor2"):
$eko_taksa = 243;
break;
case ("motor3"):
$eko_taksa = 121;
break;
case ("motor4"):
$eko_taksa = 194;
break;
}
break;
case ($starost_vozila < 6):
switch ($podaci['tip_motora']){
case ("motor1"):
$eko_taksa = 485;
break;
case ("motor2"):
$eko_taksa = 243;
break;
case ("motor3"):
$eko_taksa = 121;
break;
case ("motor4"):
$eko_taksa = 194;
break;
}
break;
case ($starost_vozila > 5 && $starost_vozila < 11):
switch ($podaci['tip_motora']){
case ("motor1"):
$eko_taksa = 667;
break;
case ("motor2"):
$eko_taksa = 273;
break;
case ("motor3"):
$eko_taksa = 136;
break;
case ("motor4"):
$eko_taksa = 218;
break;
}
break;
Switch continue more, but here is my problem, in this piece of code.
If i dont put “case (0):” and use this:
case ($starost_vozila >= 0 && $starost_vozila < 6):
Then the case that is next will somehow become active and it will print out that “$eko_taksa = 667;”.
That is all problem when “$starost_vozila = 0” but when it is any number less then 6 than this case above works.
Every var here is int. Everything works ok except when “$starost_vozila = 0” and when i use “case ($starost_vozila >= 0 && $starost_vozila < 6):”.
I have no idea what is going on… Oo
Sorry if this is dumb question. 🙁
switch cases don’t take statements that need to be evaluated. They take simple strings, booleans or numbers to be compared against
so say you have
you are expecting that case to run but it doesn’t and here’s why
( $x < 10 )evaluates totrueso what you actually have is:
0 != trueso the case failsyou need to use