开关语句大小写未执行



>像这样我有 40 多个案例陈述,有些条件甚至没有执行我不知道为什么请回答谢谢

switch (true){
case (isset($_POST['min_beds']) && !empty($_POST['price_val']) && isset($_POST['property_status']) && $_POST['property_type'] == 'All' && $_POST['my_project_location'] == 'All'): 
break;
case (isset($_POST['min_beds']) && !empty($_POST['price_val']) && isset($_POST['my_project_location']) && $_POST['property_type'] == 'All' && $_POST['property_status'] == 'All'): 
break;
case (isset($_POST['min_beds']) && !empty($_POST['price_val']) && isset($_POST['property_status']) && $_POST['property_type'] == 'All' && $_POST['my_project_location'] == 'All'):
break;
case ($_POST['property_status'] == 'All' && isset($_POST['property_type']) && isset($_POST['my_project_location'])  && isset($_POST['min_beds']) && isset($features) && !empty($_POST['price_val'])): 
break;
case (isset($features) && !empty($_POST['price_val']) && isset($_POST['my_project_location']) && $_POST['property_status'] == 'All' && $_POST['property_type'] == 'All' && $_POST['min_beds'] == 'All'): 
break;
case ($_POST['property_status'] == 'All' && isset($_POST['my_project_location'])  && isset($_POST['min_beds']) && isset($features) && !empty($_POST['price_val']) && $_POST['property_type'] == 'All'): 
break;
}

Switch 更像是一连串的elseif,而不是一系列的if。只有计算结果为 true 的第一个case语句(当与正在打开的值进行非严格比较时(将被视为匹配项,并且不会检查进一步的case语句。一旦在匹配的case语句之后到达第一个break,交换机将退出;

参见:https://www.php.net/manual/en/control-structures.switch.php

switch(true) {
case true:
echo("this will run");
case false: 
echo("this will also run because there is no 'break' yet");
break;
case true:
echo("this will never run");
}

您没有正确使用开关。如果您想要在满足任何这些条件时中断,请使用 ifs。

if(isset($_POST['min_beds']) && !empty($_POST['price_val']) && isset($_POST['property_status']) && $_POST['property_type'] == 'All' && $_POST['my_project_location'] == 'All'){
break;
}
if(isset($_POST['min_beds']) && !empty($_POST['price_val']) && isset($_POST['my_project_location']) && $_POST['property_type'] == 'All' && $_POST['property_status'] == 'All'){ 
break;
}
if(isset($_POST['min_beds']) && !empty($_POST['price_val']) && isset($_POST['property_status']) && $_POST['property_type'] == 'All' && $_POST['my_project_location'] == 'All'){
break;
}
if($_POST['property_status'] == 'All' && isset($_POST['property_type']) && isset($_POST['my_project_location'])  && isset($_POST['min_beds']) && isset($features) && !empty($_POST['price_val'])){
break;
}
if(isset($features) && !empty($_POST['price_val']) && isset($_POST['my_project_location']) && $_POST['property_status'] == 'All' && $_POST['property_type'] == 'All' && $_POST['min_beds'] == 'All'){ 
break;
}
if($_POST['property_status'] == 'All' && isset($_POST['my_project_location'])  && isset($_POST['min_beds']) && isset($features) && !empty($_POST['price_val']) && $_POST['property_type'] == 'All'){ 
break;
}

最新更新