Tho*_*mas -2 php parsing include
我将部分PHP代码放入包含文件时遇到问题.基本上,情况类似于以下示例:
<?php
$x=1;
if ($x==1) { echo 'test'; }
?>
Run Code Online (Sandbox Code Playgroud)
这产生了测试.我现在替换它
<?php
$x=1;
if ($x==1) { include('test_incl.php') ;
?>
Run Code Online (Sandbox Code Playgroud)
使用test_incl.php
<?php echo 'test'; } ?>
由于包含文件只是添加了原始代码中的代码,我希望它也能正常工作,但我得到的是"解析错误:语法错误,意外的文件结束".
有什么线索在这里发生了什么?
进一步解释:
我需要在购物车的一种语言版本中围绕一段代码添加条件而不是其他版本.所以我的想法是将PHP文件包含在条件的开始和结束部分中,这将保持所有版本的核心代码相同,只有不同的包含(这就是为什么语言特定的功能处理这个购物车).
从我所看到的,PHP引擎解析代码流中的包含,所以我不明白为什么我得到文件结束错误(这表明包含实际上还没有被解析,当结束时达到了父代码.
此外,我已经成功使用过这种方法,包含Javascript/HTML.
您不能在单独的文件中包含if语句的开始和结束标记,因此当您的主文件到达文件末尾时,if语句仍然是打开的,因此意外的eof.
要解决此问题,您需要将if语句的右括号移回原始文件.您的文件应如下所示:
<?php
$x=1;
if ($x==1) { include('test_incl.php'); }
?>
Run Code Online (Sandbox Code Playgroud)
和test_incl.php:
<?php echo 'test'; ?>
Run Code Online (Sandbox Code Playgroud)