Для удобства чтения позже и для других разработчиков, 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 условия, даже еслиВы знаете, что только один из них может быть правдой.(Это просто иллюстрация, я также думаю, что можно просто сразу же вернуться вместо заполнения другой переменной)