PHP 切换“||”不能正常工作
PHP switch "||" not working properly
在 switch 语句中,当我遇到带“||”的情况时它不能正常工作。
$get = 'item';
switch ($get):
case 'items' || 'several-items':
echo 'items';
break;
case 'item':
echo 'item';
break;
endswitch;
此代码输出 items
。 这是 php 错误吗?
$get = 'several';
也输出 items
。
所以问题肯定出在'||'运算符,因为下面的代码工作得很好:
$get = 'item';
switch ($get):
case 'items':
case 'several-items':
echo 'items';
break;
case 'item':
echo 'item';
break;
endswitch;
您不能在 switch 语句中使用 OR (||
) 和 AND (&&
) 运算符
然后使用
case 'items':
case 'several-items':
echo 'items';
break;
相反,尤其是 documented method to use
否则,您将针对 'items' 和 'several-items' 的逻辑 or
的情况进行测试(因为 ||
将始终具有优先权),这是一个布尔假;并且您的 $get
值将与该布尔值 false 匹配,除非它松散地转换为真值(即 1item
或类似值)
在 switch 语句中,当我遇到带“||”的情况时它不能正常工作。
$get = 'item';
switch ($get):
case 'items' || 'several-items':
echo 'items';
break;
case 'item':
echo 'item';
break;
endswitch;
此代码输出 items
。 这是 php 错误吗?
$get = 'several';
也输出 items
。
所以问题肯定出在'||'运算符,因为下面的代码工作得很好:
$get = 'item';
switch ($get):
case 'items':
case 'several-items':
echo 'items';
break;
case 'item':
echo 'item';
break;
endswitch;
您不能在 switch 语句中使用 OR (||
) 和 AND (&&
) 运算符
然后使用
case 'items':
case 'several-items':
echo 'items';
break;
相反,尤其是 documented method to use
否则,您将针对 'items' 和 'several-items' 的逻辑 or
的情况进行测试(因为 ||
将始终具有优先权),这是一个布尔假;并且您的 $get
值将与该布尔值 false 匹配,除非它松散地转换为真值(即 1item
或类似值)