我遇到了将部分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包含了这种方法。
答案 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';?>