2013-04-01 25 views
3

所以我现在有一个网站在Apache 2.2和PHP 5.3.18上生产生活,它的​​功能如预期。我只是建立了一个新的开发环境,并决定启动Apache 2.4和PHP 5.4.7来尝试它们(功能版本不应该破坏我所假设的任何东西)。PHP的语法错误在Apache 2.4.3和PHP 5.4.7(foreach模板语法)

不管怎样,现在下面的代码执行我的生产服务器上的罚款输出以下错误:

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

是否有新的东西我失踪,或者是有错误的配置还是什么?

代码:您ENDIF

<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> 
+0

嗯,这个问题/答案帮助了我极大。 – Sceletia

回答

4

短标签:

<? endif; ?> 

应该

<?php endif; ?> 
+0

哦,不,多么尴尬。叹息感谢 – thatidiotguy

+0

我讨厌XHTML的原因有几个,但是迫使创建[short_open_tag](http://www.php.net/manual/en/ini.core.php#ini.short-open-tag)指令我最喜欢的。 –