【问题标题】:PHP - Include inside Include (Not passing variables)PHP - 包含在包含中(不传递变量)
【发布时间】:2011-11-28 05:11:54
【问题描述】:

假设我们有 3 个文件:File1.php、File2.php、File3.php

我想把它放在 File1.php 中我 include() File2.php 的位置。然后在 File2.php 中包含() File3.php。我通过在 File3.php 中编写测试文本对其进行了测试,当我查看 File1.php 时,我可以看到该测试文本。

现在我的问题是,如果我在 File3.php 中创建一个变量,说 '$test = "Success!";',然后我尝试在 File1.php 中使用 'echo $test;' 调用它它什么也不输出。它不是传输变量,而是传输标准文本。

这是怎么回事?

(P.S.我这样做的原因是因为组织。)

编辑

这是我的确切代码: (也忘了说我是先抓取网站的url)

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;

【问题讨论】:

    标签: php variables include


    【解决方案1】:
    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。这应该可以。

    【讨论】:

    • 哦,不要使用 URL 来包含页面。而是使用本地路径。例如包括“/home/.../file2.php”;这应该工作
    【解决方案2】:

    如果你的文件有这些行,那么 echo 会打印出你的信息:

    文件1.php:

    <?php
        include 'File2.php';
        echo $test;
    ?>
    

    文件2.php:

    <?php
        include 'File3.php';
    ?>
    

    文件3.php:

    <?php
        $test='success!';
    ?>
    

    【讨论】:

      猜你喜欢
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      • 2011-08-21
      • 2014-07-10
      • 2011-05-23
      相关资源
      最近更新 更多