【发布时间】:2015-08-27 12:03:22
【问题描述】:
我创建了两个简单的例子:
第一个例子:
<?php $arr = array(1,2,3,4,5); ?>
<?php foreach ($arr as $element) ?>
<?php { ?>
<?php echo $element; ?>
<?php } ?>
输出:
5 //Is this result wrong?
第二个例子:
<?php $arr = array(1,2,3,4,5); ?>
<?php foreach ($arr as $element) { ?>
<?php echo $element; ?>
<?php } ?>
输出:
12345
我错过了 PHP 语法的哪些方面?
我知道有另一种 foreach 语法,但在我看来,两个显示的示例都应该产生相同的输出。 (使用 PHP 版本测试的代码:5.6.12)
编辑:
我知道并非每一行都需要标签。 更准确地说:我想知道为什么这两个例子给了我两个不同的结果?
【问题讨论】:
-
我知道 :D 只是想知道这个输出的原因......
-
只需将 放在最后.....为什么在每一行都使用它..
-
只是猜测,但也许第一个示例中的 ?> 实际上被视为语句结尾(可以使用不带大括号的循环)。此时,循环已经发生,
$element是最后一个值。然后大括号只是作为你回显的代码块,即 5。 -
我在某处读到一些框架实际上为每一行添加了标签。
-
@JayBlanchard 问题中没有提到框架。你在这里很安全,这是一个安全的地方:-) ...现在,muahaha