何时,何地以及为什么要使用Control Structures的"替代语法"?

7 php control-structure

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

if(true) {
  echo("Hello World!");
} else {
  echo("Goodbye World!");
}
Run Code Online (Sandbox Code Playgroud)

"替代语法"看起来是这样的:

if(true):
  echo("Hello World!");
else:
  echo("Goodbye World!");
endif;
Run Code Online (Sandbox Code Playgroud)

关于这种"替代语法",我有几个问题:

  1. 何时 /在什么情况下我应该使用它?
  2. 哪里 /在我的脚本的一部分,我应该使用它?
  3. 我为什么要使用它/它的用途是什么?使用它有什么好处?
  4. 它为什么被创建,"替代语法"是否具有"原始语法"不具备的功能?

感谢您的时间和提前帮助.

Art*_*nix 11

我通常只在混合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 } ?>
Run Code Online (Sandbox Code Playgroud)

虽然这个很小但是如果你将它扩展到大约800行,那么跟踪所有那些}拥有endif; endforeach等等的人就会变得很棘手.在与所有HTML内容混合时,你可以更好地匹配代码块.

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

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