PHP Include - 意外的文件结尾

时间:2015-04-21 15:50:25

标签: php parsing include

我遇到了将部分PHP代码放入包含文件的问题。基本上,情况类似于以下示例:

<?php 
$x=1;
if ($x==1) { echo 'test'; }
?>

这会产生测试。 我现在用

替换它
<?php 
$x=1;
if ($x==1) { include('test_incl.php') ;
?>

使用test_incl.php

<?php echo 'test'; } ?>

由于包含文件只是添加了原始代码中的代码,我希望它也可以正常工作,但我得到了&#34;解析错误:语法错误,意外的文件结束& #34;

有什么线索在这里发生了什么?


进一步解释:

我需要在购物车的一个语言版本中围绕一段代码添加条件,而不是其他版本。所以我的想法是将PHP文件包含在条件的开始和结束部分中,这将保持所有版本的核心代码相同,只有不同的包含(这就是为什么语言特定的功能处理这个购物车)。

从我所看到的,PHP引擎解析代码流中的包含,所以我不明白为什么我得到文件结束错误(这表明包含实际上尚未被解析)到达父代码的结尾时。

另外,我之前使用Javascript / HTML包含了这种方法。

2 个答案:

答案 0 :(得分:8)

你不能像在单独的文件中那样包含if语句的开始和结束标记,所以当你的主文件到达文件的末尾时,if语句仍然是打开的,因此意外的eof。

要解决此问题,您需要将if语句的右括号移回原始文件。您的文件应如下所示:

<?php 
$x=1;
if ($x==1) { include('test_incl.php'); }
?>

和test_incl.php:

<?php echo 'test'; ?>

答案 1 :(得分:-1)

试试这个:

<?php 
$x=1;
if ($x==1) {
   include('test_incl.php');
}
?>

<?php echo 'test';?>