php - 带有或条件的 PHP 大小写切换
问题描述
我正在尝试使用带有“或”的 SWITCH CASE 条件来获取从表单接收到的一个或其他值。但总是进入第一个条件'这里!1'。有人可以帮我识别代码中的错误吗?我已经尝试使用 [('value1' || 'value2')] 和 ['value1' || 'value'] 两者都不起作用,因为总是返回“变量 DDDs 的值是:$sDDDs - 这里!1”
<?php
$sDDDA = $_POST['DDDA'];
$sNumA = $_POST['NumA'];
$sDtInit = $_POST['DtInit'];
$sDtEnd = $_POST['DtEnd'];
$sIdProduct = $_POST['IdProduct'];
$sAnoMes = $_POST['AnoMes'];
$sDDDs = $_POST['DDDs'];
$sMSISDN = $_POST['DDDA'] . $_POST['NumA'];
$s55MSISDN = "55" . $_POST['DDDA'] . $_POST['NumA'];
echo "The value of the variable DDDA is: $sDDDA <br>";
echo "The value of the variable NumA is: $sNumA <br>";
echo "The value of the variable DtInit is: $sDtInit <br>";
echo "The value of the variable DtEnd is: $sDtEnd <br>";
echo "The value of the variable AnoMes is: $sAnoMes <br>";
echo "The value of the variable DDDs is: $sDDDs <br>";
echo "The value of the variable MSISDN is: $sMSISDN <br>";
echo "The value of the variable 55MSISDN is: $s55MSISDN <br>";
echo "</b><br><br>";
switch($_POST['IdProduct']){
case 'Conecta':
echo "The value of the variable IdProduct is: $sIdProduct - here! <b>1</b><br><br>";
switch ($_POST['AnoMes']){
case ('ate_201803'||'201804_201902'):
echo "The value of the variable AnoMes is: $sAnoMes - here! <b>1</b><br><br>";
switch ($_POST['DDDs']){
case '1x4x5x6x':
echo "The value of the variable DDDs is: $sDDDs - here! <b>1 - 1x </b><br><br>";
break;
case '2x3x7x8x9x' :
echo "The value of the variable DDDs is: $sDDDs - here! <b>1 - 2x </b><br><br>";
break;
default:
echo 'ERRO! The value is wrong for variable DDD! here! <b>1</b><br><br>';
}
break;
case 'apartir_201903':
echo "The value of the variable AnoMes is: $sAnoMes - here! <b>5</b><br><br>";
switch ($_POST['DDDs']){
case '1x4x5x6x' :
echo "The value of the variable DDDs is: $sDDDs - here! <b>5 - 1x </b><br><br>";
break;
case '2x3x7x8x9x' :
echo "The value of the variable DDDs is: $sDDDs - here! <b>5 - 2x </b><br><br>";
break;
default:
echo 'ERRO! The value is wrong for variable DDD! here! <b>5</b><br><br>';
}
break;
default:
echo 'ERRO! The value is wrong for variable AnoMes!</b><br><br>';
}
break;
case 'Recado':
echo "The value of the variable IdProduct is: $sIdProduct - here! <b>3<br>";
switch ($_POST['AnoMes']){
case ('ate_201803'||'201804_201902'):
echo "The value of the variable AnoMes is: $sAnoMes - here! <b>3<br>";
switch ($_POST['DDDs']){
case '1x4x5x6x' :
echo "The value of the variable DDDs is: $sDDDs - here! <b>3 - 1x </b><br><br>";
break;
case '2x3x7x8x9x' :
echo "The value of the variable DDDs is: $sDDDs - here! <b>3 - 2x </b><br><br>";
break;
default:
echo 'ERRO! The value is wrong for variable DDD! here! <b>3</b><br><br>';
}
break;
case 'apartir_201903':
echo "The value of the variable AnoMes is: $sAnoMes - here! <b>4<br>";
switch ($_POST['DDDs']){
case '1x4x5x6x' :
echo "The value of the variable DDDs is: $sDDDs - here! <b>4 - 1x </b><br><br>";
break;
case '2x3x7x8x9x' :
echo "The value of the variable DDDs is: $sDDDs - here! <b>4 - 2x </b><br><br>";
break;
default:
echo 'ERRO! The value is wrong for variable DDD! here! <b>4</b><br><br>';
}
break;
default:
echo 'ERRO! The value is wrong for variable AnoMes!</b><br><br>';
}
break;
default:
echo 'ERRO! The value is wrong for variable AnoMes!</b><br><br>';
}
?>
解决方案
问题是,case
如果您使用逻辑运算符,则 ur 将评估为布尔值。
所以当你有case ('ate_201803'||'201804_201902')
PHP 看到case true
.
要使用OR
仅列出彼此下方的案例的等价物:
switch ($value) {
case 'ate_201803':
case '201804_201902':
// ...
break;
}
推荐阅读
- firefox - Computed Knockout JS 函数似乎没有在 firefox 中取消绑定按键事件
- angular - 为什么我在使用 ngrx 效果时会收到这个可观察到的警告
- css - .less mixin 守卫不接受@media 表达式
- python - 使用两个单独的字符串时,如何删除“扫描字符串文字时 EOL”错误?
- django - OSError:[Errno 99] 地址不可用 - 从 django docker 应用程序使用 gmail smtp 发送电子邮件
- sql - 如何在没有函数 generate_series 的 Postgresql 中创建数据系列
- wpf - 从 WPF 用户控件访问 Winform
- python - 张量流RegisterGradient中参数的形状?
- jenkins - 是否可以在管道 Jenkinsfile 中对 cron 触发器的输入进行字符串插值?
- sql - SQL算术溢出错误将钱转换为数据类型数字