【发布时间】:2017-11-27 23:20:06
【问题描述】:
我想检查用户是否使用默认设置。在下面的示例中,我正在尝试检查是否所有“foreached”项目都返回true。如果单个 foreached 项未返回 true,则在整个函数上返回 false。
private function is_using_default_settings() {
// returns a huge array with settings
$merged_preset = $this->options_merged();
foreach($merged_preset as $preset) {
if($preset[5] == 1) {
$section = 'general';
} elseif($preset[5] == 2) {
$section = 'advanced';
} elseif($preset[5] == 3) {
$section = 'technical';
}
$option = get_option($section);
if($preset[3] == $option[$preset[0]] && !is_null($preset[1])) {
return true;
}
}
return false;
}
过去几天我一直在集思广益,想自己解决这个问题,但遗憾的是无法让它发挥作用。最好的方法是什么?
【问题讨论】:
-
实际上是您自己编写的:如果单个 foreached 项目不返回 true,则返回 false - 在您的 foreach 中测试
false(例如,切换您的逻辑) 并在任何项目不匹配时返回 false。如果全部匹配,则在函数结束时返回 true。 -
你需要换个角度看。
return false如果一个不匹配,只有在循环完成时return true。这样,如果 any 部分为 false,它将返回 false。 -
当
$preset[5]不是 1、2 或 3 时会发生什么?有可能吗?
标签: php arrays methods foreach return