何时,何地和为什么我应该使用Control Structures的“替代语法”?

时间:2016-06-14 18:02:43

标签: php control-structure

一个简单的PHP if / else条件如下所示:

if(true) {
  echo("Hello World!");
} else {
  echo("Goodbye World!");
}

“替代语法”如下所示:

if(true):
  echo("Hello World!");
else:
  echo("Goodbye World!");
endif;

我对这个“替代语法”有几个问题:

  1. 什么时候 /我应该在什么情况下使用它?
  2. 哪里 /我应该在哪个部分使用它?
  3. 为什么我应该使用它/它的目的是什么?使用它有什么好处吗?
  4. 为何创建,“替代语法”是否具有“原始语法”不具备的功能?
  5. 谢谢你的时间和时间提前帮忙。

1 个答案:

答案 0 :(得分:8)

我通常只在混合使用HTML和PHP时使用它,所以只是为了参数,这里有一个比较的例子

<?php foreach( $vars as $var ): ?>
    <?php if($var):?>
      <p>Hello World!</p>
    <?php else:?>
      <p>Goodbye World!</p>
    <?php endif;?>
<?php endforeach; ?>


<?php foreach( $vars as $var ){ ?>
    <?php if($var){ ?>
      <p>Hello World!</p>
    <?php }else{ ?>
      <p>Goodbye World!</p>
    <?php } ?>
<?php } ?>

当然这很小但是如果你将它延伸到大约800行,那么跟踪所有} endif; endforeach等的endif;会很棘手。给你一个当与所有HTML内容混合时,更好的方法来匹配代码块。

同样,我很少使用混合的HTML / PHP,如果你有更多的行来混合两者,我建议使用模板引擎。因为即使这样一旦你有十几个{{1}},它就会变得混乱。它会失去它的意义。

但是,我想简而言之,我倾向于将其视为默认模板语法......