PHP - 包含在Include内部(不传递变量)

时间:2011-09-30 05:52:00

标签: php variables include

假设我们有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;

2 个答案:

答案 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!';
?>