现在,我有这样的事情:
<?php if ( ! is_front_page() ) : ?>
<?php if ( $count >= 1 ) : ?>
<?php if ( $count == 1 ) : ?>
<h2 class="dark-title"><?php _e( 'Top Reply (Latest)' ); ?></h2>
<?php else : ?>
<h2 class="dark-title"><?php _e( 'Top Replies (Latest)' ); ?></h2>
<?php endif; ?>
<?php endif; ?>
<?php endif; ?>
如果这是一个不好的做法,我想知道3个嵌套的if语句。如果是,我该如何清理此代码?
答案 0 :(得分:2)
如果条件非常简单并且没有其他情况。
此外,绝对不鼓励打开无用的<?php
处理说明并使用不常见的endif
表单而不是大括号。相反,写一下:
<?php
if (!is_front_page() && ($count >= 1)) {
echo '<h2 class="dark-title">';
echo _e(($count==1) ? 'Top Reply (Latest)' : 'Top Replies (Latest)');
echo '</h2>';
}
?>
答案 1 :(得分:1)
......如果你需要的话 超过3级压痕,你搞砸了...... - Linus Torvalds
你做得很好。一般来说,您最关心的应该是您的代码是否可读,而不是您使用的嵌套级别。
答案 2 :(得分:1)
重复加价肯定是一个“好主意”。如果你想改变一些东西,例如添加一个类,你必须在两个地方做。
在某些情况下,当您只想根据条件分配值时,可以使用三元运算符(condition ? iftrue : iffalse
),而不是嵌套它。
<?php if ( ! is_front_page() && $count >= 1 ) : ?>
<h2 class="dark-title">
<?php _e( $count == 1 ? 'Top Reply (Latest)' : 'Top Replies (Latest)' ); ?>
</h2>
<?php endif; ?>
答案 3 :(得分:0)
这很常见。如果要清理代码,请将内容重构为单独的函数/方法。在你的具体情况下,你也可以通过if($ count == 1)和thenif($ count&gt; 1)来摆脱一个嵌套。