php 中这两种类型的 foreach() 循环之间的技术区别?

Technical difference between these two types foreach() loops in php?

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 中相同?

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

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

谢谢你的帮助。

它们完全相同,但两种不同的语法

PHP offers an alternative syntax for some of its control structures; namely, if, while, for, foreach, and switch. In each case, the basic form of the alternate syntax is to change the opening brace to a colon (:) and the closing brace to endif;, endwhile;, endfor;, endforeach;, or endswitch;, respectively.

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

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

第二个对于输出HTML很有用,可以看到,<!--do stuff -->是一个HTML评论

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

必须回显或打印

<?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; ?>