我可以使用下面这样的多个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++;
}
}
谢谢。
最合适的回答,由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}++;
}
}
}