代码之家  ›  专栏  ›  技术社区  ›  Kristopher Ives

PHP替代控制结构,有什么缺点吗?

  •  3
  • Kristopher Ives  · 技术社区  · 15 年前

    我一直在和 PHP 代码可以生成HTML而不需要任何模板化,这是一个非常意大利式的过程,很难按照它们的结构来阅读。我注意到的一种方法是使用 : endif 而不是 { } 在某些情况下阻止以提高可读性。(见 http://php.net/manual/en/control-structures.alternative-syntax.php )

    • 这是便携式的吗?
    • 这是标准吗?
    • 这个速度有没有慢一些(我知道这需要更多的字符)

    干杯!

    5 回复  |  直到 12 年前
        1
  •  7
  •   Felix Kling    15 年前

    这是便携式的吗?

    是的

    这是标准吗?

    是的

    这个速度有没有慢一些(我知道这需要更多的字符)

    我不知道。

    但是,如果您将它与HTML结合使用,它会极大地提高可读性和可维护性。

    例子:

    <?php foreach($array as $value): ?>
        <div>
        <?php if($value == "foo"): ?>
            <p><?php echo $value; ?></p>
        <?php endif; ?>
        </div>
    <?php endforeach; ?>
    

    VS

    <?php foreach($array as $value) { ?>
        <div>
        <?php if($value == "foo") { ?>
            <p><?php echo $value; ?></p>
        <?php } ?>
        </div>
    <?php } ?>
    

    这只是一个小例子,但我认为 endif endforeach 更容易被发现 <?php } ?> . 所以是的,绝对要和HTML一起使用!

    不过,我不在其他地方使用它,因为在“普通”代码中,我发现它更难阅读。

        2
  •  4
  •   Artefacto    15 年前

    就我个人而言,我讨厌他们,但他们是语言的一部分。他们还没有被否决,我怀疑他们很快就会被移除。

    您必须小心的是,不能在同一个控制块中混合两个语法(如手册页面所述)。

    我觉得它们再也不可读了。识别提供了足够的线索。如果您有足够长的块,以至于您看到自己在使用这些控制结构,或者 } //end of while ,您应该重构代码。

        3
  •  1
  •   user    12 年前

    PHP替代控制结构,有什么缺点吗?

    是的,你不能用 % 在VIM中在块的开始和结束之间跳跃。只是说说而已。

        4
  •  0
  •   Scott M.    15 年前

    直接回答:是的,它是标准的,便携的,而且速度也不慢。它是标准大括号语法的简单替代。你是否选择使用它取决于你的风格选择。

    就我个人而言,在我整个编程生涯(到目前为止)中,我一直在学习和使用C风格的语言,我更喜欢在花括号结束后用简单的注释来表示花括号的结束。

        5
  •  0
  •   depz123    12 年前

    我看到的唯一的缺点是,在一个编辑器中,比如Sublime文本,有如下选项 “跳转到匹配的括号”和“将所选内容扩展到括号”,这将无法使用替代语法。

    推荐文章