为何功能:
function wtf($dH)
{
switch ($dH)
{
case ($dH >= 0.0 && $dH < 1.0):
echo '$dH>=0';
break;
case ($dH >= 1.0 && $dH < 2.0):
echo '$dH>=1';
break;
case ($dH >= 2.0 && $dH < 3.0):
echo '$dH>=2';
break;
case ($dH >= 3.0 && $dH < 4.0):
echo '$dH>=3';
break;
case ($dH >= 4.4 && $dH < 5.0):
echo '$dH>=0';
break;
case ($dH >= 5.0 && $dH < 6.0):
echo '$dH>=5';
break;
default:
echo '$dH>=6';
break;
}
}
wtf(0.0);
Run Code Online (Sandbox Code Playgroud)
在调用之后它返回:"$ dH> = 1"0.0
???
这是错误的答案,因为它应该返回第一种情况:"$ dH> = 0".
???
switch语句与多个if语句相同.
但是......你不需要重新输入if语句,你在这里做什么.
你有两个选择: - 或者
你检查一个bool - 或者
你用if编写所有内容
因为你已经有了一个开关,我选择了这个片段中的第一个:
private function wtf($dH)
{
switch (true)
{
case ($dH >= 0.0 && $dH < 1.0):
dd('$dH>=0', $dH);
break;
case ($dH >= 1.0 && $dH < 2.0):
dd('$dH>=1', $dH);
break;
case ($dH >= 2.0 && $dH < 3.0):
dd('$dH>=2', $dH);
break;
case ($dH >= 3.0 && $dH < 4.0):
dd('$dH>=3', $dH);
break;
case ($dH >= 4.0 && $dH < 5.0):
dd('$dH>=4', $dH);
break;
case ($dH >= 5.0 && $dH < 6.0):
dd('$dH>=5', $dH);
break;
default:
dd('$dH>=6', $dH);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,case如果输出为真,您将检查每个输出是否为真,这应该适用于您的代码段.