我想检查用户是否使用默认设置。在下面的示例中,我试图检查是否所有" foreached"商品返回true
。如果单个预设项目没有返回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;
}
过去几天我一直在集思广益,让我自己排序,但遗憾的是无法让它发挥作用。最好的办法是什么?
答案 0 :(得分:0)
您可以检查何时为false并阻止完整的foreach然后返回值,如果all为true则返回值为true
试试这个:
private function is_using_default_settings() {
$returnValue = true;
$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])) {
$returnValue = false;
break;
}
}
return $returnValue;
}
答案 1 :(得分:0)
当foreach中的任何检查失败时,您应该返回false,否则返回true。
function check()
{
foreach($arr as $v)
{
//check fails
if(fail of the check)
return false;
}
return true;
}