如何合并PHP中的多个elseif语句?求优化方案
优化多elseif判断的PHP代码方案
你可以把需要匹配的等级ID统一放到一个数组中,通过判断用户当前等级ID数组和目标数组是否存在交集来简化逻辑,这样既消除了重复的elseif,也让代码更易维护:
<?php $level_ids = leaky_paywall_subscriber_current_level_ids(); // 集中管理需要触发"DO THIS"的等级ID $target_levels = [2, 3, 4, 6, 7, 9, 10]; if (!empty($level_ids)) { // 检查两个数组是否有重叠元素 if (!empty(array_intersect($level_ids, $target_levels))) { echo 'DO THIS'; } else { echo 'DO THAT'; } }
思路说明
- 集中管理目标ID:把所有需要执行"DO THIS"的等级ID放到
$target_levels数组中,后续要添加/删除等级ID时,只需要修改这个数组,无需改动判断逻辑。 - 高效判断交集:使用
array_intersect函数获取两个数组的交集,如果交集不为空,说明用户当前等级属于目标集合,执行对应操作;否则执行"DO THAT"。 - 保留原逻辑:完全保留了你原代码中
$level_ids为空时不输出任何内容的逻辑。
内容的提问来源于stack exchange,提问作者Job82
相关产品推荐
相关产品推荐

