Apache 2.4.3和PHP 5.4.7上的PHP语法错误(foreach模板语法)

3

我目前有一个在Apache 2.2和PHP 5.3.18上运行的网站,它的功能是正常的。我刚刚建立了一个新的开发环境,并决定启动Apache 2.4和PHP 5.4.7来尝试它们(我假设特性发布不应该破坏任何东西)。

无论如何,现在下面的代码在我的生产服务器上执行得很好,但会输出以下错误:

PHP Parse error:  syntax error, unexpected 'endforeach' (T_ENDFOREACH) in C:\xampp\htdocs\mysite\application\views\header_subnav.php on line 17

我是否错过了什么新的东西,或者是配置出了问题?

代码:

<nav class="header_subnav">
                <div class="subnav_item_wrapper">
                    <a href="<?php echo URL::site(); ?>">Home</a>&nbsp;&#8594;&nbsp;
                </div>
                <?php $i = 0; ?>
                <?php foreach($subnav as $subnav_text => $subnav_uri): ?>
                        <?php if($i === count($subnav) - 1): ?>
                            <div class="subnav_item_wrapper">   
                                <?php echo $subnav_text; ?>
                            </div>
                            <?php break; ?>
                        <? endif; ?>
                        <div class="subnav_item_wrapper">
                            <a href="<?php echo URL::site($lang.'/'.$subnav_uri); ?>"><?php echo $subnav_text; ?></a><?php if($i !== count($subnav) - 1) echo '&nbsp;&#8594;&nbsp;'; ?>
                        </div>
                    <?php $i++; ?>
                <!-- LINE 17 -->
                <?php endforeach; ?>
            </nav>

这个问题/答案对我帮助很大。 - Delon
1个回答

4

在您的endif上使用短标签:

<? endif; ?>

应该是

<?php endif; ?>

哦不。好尴尬啊。叹气,谢谢。 - thatidiotguy
我讨厌XHTML有很多原因,但强制创建short_open_tag指令是我最喜欢的之一。 - Álvaro González

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接