有太多嵌套的PHP if语句是一种不好的做法吗?

有太多嵌套的PHP if语句是一种不好的做法吗?,php,if-statement,Php,If Statement,现在,我有这样的想法: <?php if ( ! is_front_page() ) : ?> <?php if ( $count >= 1 ) : ?> <?php if ( $count == 1 ) : ?> <h2 class="dark-title"><?php _e( 'Top Reply (Latest)' ); ?></h2> <?p

现在,我有这样的想法:

<?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语句,我想知道这是否是一个糟糕的做法。如果是,我如何清理此代码

这很常见。如果您想清理代码,可以将内容重构为单独的函数/方法。在您的特定情况下,您还可以通过执行if($count==1)和elseif($count>1)来消除一个嵌套。

这是相当常见的。如果您想清理代码,可以将内容重构为单独的函数/方法。在您的特定情况下,您还可以通过执行if($count==1)和elseif($count>1)来摆脱一个嵌套

…如果你需要 超过3级的压痕,你就完蛋了。。。 -

你所做的一切都很好。一般来说,您最关心的应该是代码是否可读,而不是使用多少层嵌套

…如果你需要 超过3级的压痕,你就完蛋了。。。 -


你所做的一切都很好。一般来说,您最关心的应该是代码是否可读,而不是使用了多少嵌套级别。

如果条件非常简单,而不是其他情况,则应如此

另外,打开无用的
如果条件非常简单,而它们不是其他情况,则是这样

另外,打开无用的
重复标记肯定是个坏主意。如果您想更改某些内容,请添加一个类,例如,您必须在两个位置进行更改

在某些情况下,当您只想基于某个条件指定一个值时,可以使用三元运算符
条件?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; ?>

重复标记肯定是个坏主意。如果您想更改某些内容,请添加一个类,例如,您必须在两个位置进行更改

在某些情况下,当您只想基于某个条件指定一个值时,可以使用三元运算符
条件?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; ?>


太多
php…?>对我来说似乎有点难理解,if(count>=1)语句在这里不是多余的吗?@vascowhite否,因为它排除了
$count==0
(也可能是负数)@vascowhite是的,我需要包括0。@vascowhite简言之:
0:
1:Reply
2+:Reply
太多
php…?>对我来说似乎有点难理解,if(count>=1)语句在这里不是多余的吗?@vascowhite否,因为它排除了
$count==0
(也可能是负数)@vascowhite是的,我需要包括0。@vascowhite简言之:
0:
1:Reply
2+:Reply
,在创建模板时,使用
是很常见的。代码的可读性是我使用模板系统的主要原因。当你创建模板时,使用
是很常见的。代码的可读性是我使用模板系统的主要原因。只有当你仍然使用
80字符终端屏幕时。这完全不是重点!这句话——不管它在什么上下文中——只是说——任何有4级或4级以上缩进的代码——都有味道。你的链接也有味道。:)无意冒犯。。。当然是你回答的年龄。也许你可以这样做:只要你仍然使用80个字符的终端屏幕,那完全不是重点!这句话——不管它在什么上下文中——只是说——任何有4级或4级以上缩进的代码——都有味道。你的链接也有味道。:)无意冒犯。。。当然是你回答的年龄。也许你可以拿这个: