我得到一个奇怪的"意外的文件结尾"从同事那里获得一些更改后,PHP文件出错。通过有选择地删除代码块,我能够将问题简化为两个,如果文件中的块是这样的(为了清晰起见,删除了一些过量):
<?php if(...) { ?>
<li><a href="<?php print $prefix; ?>specials"><i class="fa fa-tag fa-lg2"></i> <?php print _("Specials"); ?></a></li>
<? } ?>
现在,如果我将长格式PHP开放标记更改为短标签,语法错误就会消失:
<?if(...) { ?>
<li><a href="<?php print $prefix; ?>specials"><i class="fa fa-tag fa-lg2"></i> <?php print _("Specials"); ?></a></li>
<? } ?>
如果短标签被禁用,我会理解导致问题的短标签,但我不明白长标签是如何造成这种情况的。修复它很容易,我只是想知道为什么会发生这种情况。
答案 0 :(得分:0)
好的,问题是短标签被禁用了。禁用标记后,PHP只是忽略if语句并始终输出if块中的内容,这会引起我的注意。另外,我不知道对于新版本的PHP,即使禁用了短标签,您仍然可以使用&lt; ?=带有等号的开放标签,这给了我印象短标签已启用。
答案 1 :(得分:0)
你应该以相同的风格打开和关闭(长或短,无论你选择什么)。
长标签:
<?php if(..) { ?>
..
<?php } ?>
短标签:
<? if(..) { ?>
..
<? } ?>