PHP“如果'任何'这些选项设置,显示它

时间:2013-01-22 01:18:03

标签: php

所以我在这个项目中使用WordPress,我不太清楚如何解决这个问题整洁&清洁

我总共有8个选项。如果他们中的任何一个被设置,我需要某事。我还需要为每一套执行它。

现在让我们使用两个

if( (genesis_get_option('setting_one', 'settings') || genesis_get_option('setting_two', 'settings')) !== '')
    { // print() each one that is set }

你可以看到如何以8种方式这样做很快就会变得非常难看。我的所有设置都有相同的前缀:(setting_asetting_bsetting_onesetting_two

类似

$settings = array_fill(1, 8, 'setting_');
$labels = array(1 => 'a', 'b', 'c', 'd', 'one', 'two', 'three', 'four');

....但后来我不知道从哪里去。

GOT是一种干净的方式吗?

2 个答案:

答案 0 :(得分:2)

一种更简洁的方式是:

$settings = array("setting_one","setting_two","setting_a");
$has_setting = false;
foreach($settings as $setting){
    if(genesis_get_option($setting, 'settings') !== ''){
        $has_setting = true;
        break;
    }
}
if($has_setting){
    //Do stuff
}

更好的做法是将检查放入一种方法来保持代码更整洁。

编辑:刚刚意识到您需要针对每个设置执行操作。在这种情况下,你可以在循环内完成。

答案 1 :(得分:0)

if(false !== array_search(true,
  array_map(
    'genesis_get_option',
    array('setting_one', 'setting_to' /* ... */ ),
    array('value_one', 'value_two' /* ... */)
  )
)) { /* ... */ }