<?php

function geef($v){
switch($v){
case $v < 10:
$r = 1;
break;
case $v >= 10 && $v < 25:
$r = 2;
break;
}
return $r;
}
echo geef(0);
?>

Waarom geeft hij bij geef(0) een '2' terug ipv een '1'?
Omdat je case niet goed gebruikt.

Voorbeeld:
case $v < 10:
Als $v is nul dan staat daar
case 0 < 10:
En dat is eigenlijk
case true:
En een 0 (nul) is false.
Dus deze case voldoet niet.

Moet zijn: case < 10:

Edit:
In jouw geval is het wijzigen van de switch waarschijnlijk de simpelste oplossing. Maak van switch($v){ eens switch(true){

Edit2: Als je b.v. geef(100) doet dan geeft dat een error/notice omdat dan $r niet bekend is. Zet dus als eerste in de function $r = 0; (of een andere waarde).

Reageren