$bytes = 0;
switch($bytes){
case $bytes == 0:
echo 'Equal to 0.';
break;
case $bytes < 0:
echo 'Less than 0.';
break;
}
这会输出“小于 0”。
为什么?
最佳答案
switch
语句不是这样工作的。检查每个 case
时,将值与 case
值进行比较(使用 ==
)。
所以,PHP 正在做:
$bytes == ($bytes == 0)
吗?即: $bytes == (true)
。这是 false
,所以它被跳过了。 $bytes == ($bytes < 0)
吗?即: $bytes == (false)
。这是 true
,因此它运行该块。 您需要在此处使用
if/else
。$bytes = 0;
if($bytes == 0){
echo 'Equal to 0.';
}
elseif($bytes < 0){
echo 'Less than 0.';
}
关于PHP 开关函数无法识别 "less than 0",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11678570/