假设我们有3个文件:File1.php,File2.php,File3.php
我希望在File1.php中包含()File2.php。然后在File2.php中我包含()File3.php。我通过在File3.php中编写测试文本来测试它,当我查看File1.php时,我可以看到测试文本。
现在我的问题是,如果我创建一个变量,在File3.php中说'$ test =“Success!”;',然后我尝试在File1.php中使用'echo $ test;'调用它它什么也没输出。它不是传输变量,而是传输标准文本。
这里发生了什么?
(P.S。我这样做的原因是因为组织。)
修改
这是我的确切代码: (也忘了提到我先抓住网站的网址)
file3.php
<?php
$test = "Success!";
file2.php
<?php
include 'http://' . $_SERVER['SERVER_NAME'] . '/file3.php';
file1.php
<?php
include 'http://' . $_SERVER['SERVER_NAME'] . '/file2.php';
echo $test;
答案 0 :(得分:3)
echo "$test"; //with double quotes :)
// or echo $test;
您能提供更多代码吗?
每http://php.net/manual/en/function.include.php:
当包含文件时,它包含的代码将继承发生包含的行的变量范围。从那时起,调用文件中该行可用的任何变量都将在被调用文件中可用。但是,包含文件中定义的所有函数和类都具有全局范围。
检查示例#1
修改:按http://php.net/manual/en/features.remote-files.php:
此外,URL可以与include(),include_once(),require()和require_once()语句一起使用(因为PHP 5.2.0,必须为这些启用allow_url_include)
因此,您不能包含带有URL的文件,而是如我的评论中所述,使用本地路径。除非您启用allow_url_fopen
。这应该有用。
答案 1 :(得分:0)
如果你的文件有这些行,那么echo会打印出你的消息:
File1.php:
<?php
include 'File2.php';
echo $test;
?>
File2.php:
<?php
include 'File3.php';
?>
File3.php:
<?php
$test='success!';
?>