使用多个'IF Statements'是否正确?



我在WordPress中有一个两列页面设计。

我想使用函数命令在右侧列中根据分配的 WordPress 类别显示不同的小部件。

我的问题是:我的方法是否是"正确的方法"?我在"IF 语句"中有 3 组数组

我应该补充一点,它有效!

但是 - 我想确保它正确完成:

function my_custom_sidebar_display( $sidebar ) {
// Return a different sidebar for different categories
if ( in_category(array('Apples','Pears','Peaches')) ) {
return 'sidebar-fruit';
}
if ( in_category(array('potatoes','carrots','celery')) ) {
return 'sidebar-vegetables';
}
}
if ( in_category(array('monkeys','rhino','cheetah')) ) {
return 'sidebar-animals';
}
// Return theme defined sidebar area
else {
return $sidebar;
}
}
add_filter( 'ocean_get_sidebar', 'my_custom_sidebar_display' );

为了以后的可读性和其他开发人员,else if强调只有一个陈述可以为真,否则不是 100% 明显。

您的函数将更改为如下所示的内容:

function my_custom_sidebar_display( $sidebar ) {
// Return a different sidebar for different categories
if ( in_category(array('Apples','Pears','Peaches')) ) {
return 'sidebar-fruit';
} else if ( in_category(array('potatoes','carrots','celery')) ) {
return 'sidebar-vegetables';
} else if ( in_category(array('monkeys','rhino','cheetah')) ) {
return 'sidebar-animals';
} else { // Return theme defined sidebar area
return $sidebar;
}
}

通常,else if具有效率更高的优势。想象一下,正如注释中所建议的,您不会立即返回,而是将值保存在中间变量中,最后返回该变量:

if ($letter === 'a') { $value = "1";}
if ($letter === 'b') { $value = "2";}
if ($letter === 'c') { $value = "3"; }
return $value;

这样,将检查所有 3 个条件,即使您知道其中只有一个条件可以为真。 (这只是一个说明,我也认为立即返回而不是填充另一个变量是可以的(

最新更新