我有这个简单的函数可以将用户的评论数量转换为成员类型。
function checkMemberN($numMessages){
$n= $numMessages;
switch ($n) {
case ($n<50): $type="New"; break;
case ($n>=50 && $n<250):$type="Frequent";break;
case ($n>=250 && $n<1000): $type="Master";break;
default: $type="undefinded";
}
return $type;
}
echo checkMemberN(0);
Run Code Online (Sandbox Code Playgroud)
看起来它不能识别零 (0),因为当我输入 1 或更高的数字时,它会检索正确的用户类型。我究竟做错了什么?
当您使用 时switch,将选择返回值等于给定值的第一种情况。在这种情况下,您的参数(零)是 false-y 值。这就是为什么选择第一个返回的情况false:“频繁”。要修复它,您可以执行以下操作:
if ($n<50) {
$type = "New";
} else if ($n>=50 && $n<250) {
$type = "Frequent";
} else if ($n>=250 && $n<1000) {
$type = "Master";
} else {
$type = "undefined";
}
Run Code Online (Sandbox Code Playgroud)
如果您仍然想使用switch,您可以将参数更改为true:
switch (true) {
case ($n<50): $type="New"; break;
case ($n>=50 && $n<250):$type="Frequent";break;
case ($n>=250 && $n<1000): $type="Master";break;
default: $type="undefinded";
}
Run Code Online (Sandbox Code Playgroud)
在这里,将使用返回 true 的第一种情况。
| 归档时间: |
|
| 查看次数: |
38 次 |
| 最近记录: |