1

我在 PHP 的 foreach 循环中发现了奇怪的行为。当我这样做时:

<?php
$arr = array();

foreach ( $arr as $a )
{
    echo 'Hello';
}
?>

然后正如我所料,仅仅因为数组为空而没有打印任何内容,但是当我这样做时:

<? $arr = array(); ?>

<? foreach ( $arr as $a ): ?>
    Hello
<? endforeach; ?>

然后单词'Hello'被打印一次......即使数组是空的。我不明白为什么这会表现不同。对我来说,这看起来像一个错误,但我可能会遗漏一些东西......

我正在使用 PHP 5.4 (Windows)。

如果您想知道,我在我的 .phtml 文件(模板文件)中使用了第二种方法。

4

1 回答 1

4

我做了一些测试,似乎正在发生这种情况,因为short_open_tag它已关闭。

您看到“Hello”是因为 PHP 没有运行。

您需要编辑您的php.ini并设置short_open_tag1.

自 PHP 5.4 起,<?php echo别名<?=始终可用,但短标签 ( <?) 语法仍需要该选项集。

文档:http ://www.php.net/manual/en/ini.core.php#ini.short-open-tag

于 2012-05-11T21:15:19.307 回答