multiple if statements

时间:2018-06-01 作者:user142553

我可以使用下面这样的多个if语句吗,或者有更好更有效的方法吗?

while ( $actionType_query->have_posts() )
{
        $actionType_query->the_post();

        if (has_term(\'NBS_CONS\', \'broad_type_nbs\' ) && has_term(\'NBS_AGF\', \'ecosystem_nbs\')) {
          $cons_a++;
        }
        if (has_term(\'NBS_CONS\', \'broad_type_nbs\' ) && has_term(\'NBS_CMA\', \'ecosystem_nbs\')) {
          $cons_b++;
        }
        if (has_term(\'NBS_CONS\', \'broad_type_nbs\' ) && has_term(\'NBS_FOR\', \'ecosystem_nbs\')) {
          $cons_c++;
        }
        if (has_term(\'NBS_CONS\', \'broad_type_nbs\' ) && has_term(\'NBS_GRA\', \'ecosystem_nbs\')) {
          $cons_d++;

        }
        if (has_term(\'NBS_CONS\', \'broad_type_nbs\' ) && has_term(\'NBS_MON\', \'ecosystem_nbs\')) {
          $cons_e++;

        }
        if (has_term(\'NBS_CONS\', \'broad_type_nbs\' ) && has_term(\'NBS_RIV\', \'ecosystem_nbs\')) {
          $cons_f++;
        }

    }
谢谢。

1 个回复
最合适的回答,由SO网友:David Sword 整理而成

您的每个if 语句具有相同的has_term(\'NBS_CONS\', \'broad_type_nbs\' ) 作用这可以放在一个变量中以供重用。

&;你的论点if 语句实际上是非常一致的,所以您可以通过将不同的数据放入一个数组、循环和使用来减少它Variable variables:

while ( $actionType_query->have_posts() ) {
    $actionType_query->the_post();
    $data = [
        \'a\' => \'AGF\',
        \'b\' => \'CMA\',
        \'c\' => \'FOR\',
        \'d\' => \'GRA\',
        \'e\' => \'MON\',
        \'f\' => \'RIV\',
    ];
    $broad_type_nbs = has_term(\'NBS_CONS\', \'broad_type_nbs\' );
    foreach ($data as $k => $v) {
        if ($broad_type_nbs && has_term(\'NBS_\'.$v, \'ecosystem_nbs\')) {
            ${\'cons_\'.$k}++;
        }
    }
}

结束

相关推荐

在PHP 7.1上添加操作初始化中断站点

如果没有可用的子主题,我会使用自定义插件进行一些小的更改。以下用于隐藏更新通知等的代码始终运行良好。然而,如果我从PHP 7.0切换到7.1,就会破坏网站。即使在没有激活其他插件和最新的2017主题的情况下,我的测试安装也是如此。我想不出这个问题。有什么想法吗?非常感谢。function remove_core_updates() { global $wp_version;return(object) array(\'last_checked\'=> time(),\'version_c