Информация
В момента правя система на ниво потребител за моя уебсайт. Имам колона с точки в моята таблица с потребители, която ще се увеличава за определени награди и етапи и т.н.
Проблем
Имам този оператор за превключване, който взема точките на потребителите и ги преобразува в ниво, което се връща. Но се казва, че "0" не е в опцията 0-100, а по-скоро в опцията 100-200.
function userLevel($points){
switch ($points) {
case ($points>=0 && $points<100):
return 1; // Level 1
break;
case ($points>=100 && $points <200):
return 2; // Level 2
break;
case ($points>=200 && $points<300):
return 3; // Level 3
break;
case ($points>=300 && $points<400):
return 4; // Level 4
break;
}
}
echo userLevel(0);
Имам чувството, че това е един от онези въпроси „Кодирахте твърде много за едно сядане“ и отговорът е точно пред мен, но просто не мога да го видя!
0
се третира катоfalse
. Първото условие съвпада и връщаtrue
, следователно не е нула. Второто е невярно и съвпада. Всеки от следващите случаи ще съвпадне, но се прекъсва при първия. - person Michael Berkowski   schedule 11.11.2013switch
по този начин, тогава трябва да го направитеswitch(true)
и след това да имате случаи с условия, които стават истина или невярно. - person CBroe   schedule 11.11.2013true
илиfalse
. - person dan-lee   schedule 11.11.2013