【问题标题】:Technical difference between these two types foreach() loops in php?php中这两种类型的foreach()循环之间的技术区别?
【发布时间】:2019-07-21 23:20:47
【问题描述】:
foreach ($array as $value) {
            code to be executed;
} 



VS



  <?php foreach($arr as $item):?>
        <!--do stuff -->
    <?php endforeach; ?>

我在使用foreach(){...} 循环时主要使用brackets,但是foreach(): ... endforeach; 循环是做什么用的?

这两种类型foreach(){} vs foreach():...endforeach;之间有什么区别吗?或者它们在php中是一样的吗?

我们在哪种情况下使用了它们,或者它们之间有什么技术差异?

哪一种是循环结果集的更好方法?

感谢您的帮助。

【问题讨论】:

  • 第二种方式用于当您不想引用和回显您的 HTML 时,您仍然必须在 PHP 循环中使用其他 PHP 标记。
  • @StackSlave 先生,请举例说明。

标签: php loops foreach difference


【解决方案1】:

它们是完全相同相同的东西,具有两种不同的语法

PHP 为其某些控制结构提供了另一种语法; 即 if、while、for、foreach 和 switch。在每种情况下,基本 替代语法的形式是将左大括号更改为冒号 (:) 和结束大括号 endif;, endwhile;, endfor;, endforeach;, 或结束开关;分别。

参考https://php.net/manual/en/control-structures.alternative-syntax.php

【讨论】:

    【解决方案2】:

    阅读我的评论。这些输出相同的东西:

    必须回显或打印

    <?php
    $array = ['text1', 'text2', 'text3', 'text4'];
    foreach($array as $value) {
      echo "<div>$value</div>";
    }
    ?>
    

    没有 HTML 的回显或打印 (不是由 PHP 生成的),需要

    <?php foreach($array as $item): ?>
      <div><?php echo $item; ?></div>
    <?php endforeach; ?>
    

    启用短标签(从 PHP 5.4 开始,=?> 不需要)

    <? foreach($array as $item): ?>
      <div><?=$item?></div>
    <? endforeach; ?>
    

    【讨论】:

    • 短标签已被禁用。第三个例子不应该在这里。
    【解决方案3】:

    第一个用于执行纯php代码。

    第二个对于输出HTML很有用,可以看到,&lt;!--do stuff --&gt;是一个HTML注释

    【讨论】:

    • 请举例说明。
    猜你喜欢
    • 1970-01-01
    • 2015-11-18
    • 2011-06-03
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 2012-05-05
    • 2017-01-05
    • 1970-01-01
    相关资源
    最近更新 更多