如何将变量与多个值比较?现有PHP条件判断代码异常求助
问题分析与解决方案
原代码的逻辑错误
你写的条件判断逻辑存在问题:使用<>(不等于)和or(逻辑或)组合时,无论$country取什么值,条件都会成立。比如当$country是"Belgique"时,它不等于"Luxembourg",第二个条件为真,整个表达式结果为真,错误提示会被错误触发。
正确实现方式
方式一:用数组+in_array函数(推荐,易维护)
把允许的国家存入数组,通过in_array判断变量是否在数组内,取反即可实现需求:
$allowed_countries = ["Belgique", "Luxembourg", "France", "Pays-bas"]; if (!in_array($country, $allowed_countries)) { echo "The country variable is not in the list "; }
方式二:修正原逻辑(使用&&逻辑与)
如果要保留类似原代码的写法,需要把or换成&&(逻辑与),确保只有当$country同时不等于所有指定国家时才触发错误:
else if ($country <> "Belgique" && $country <> "Luxembourg" && $country <> "France" && $country <> "Pays-bas") { echo "The country variable is not in the list "; }
内容的提问来源于stack exchange,提问作者phil
相关产品推荐
相关产品推荐

