是否可以正确使用多个“ IF语句”?

时间:2018-09-26 11:00:39

标签: php function if-statement

我在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' );

1 个答案:

答案 0 :(得分:0)

为了以后的可读性和其他开发人员的注意,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;

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