代码之家  ›  专栏  ›  技术社区  ›  CoolGravatar

在PHP中,由于什么原因,我不能包含来自外部文件的变量?

php
  •  1
  • CoolGravatar  · 技术社区  · 17 年前

    如果在page1.php和page2.php中定义了$var,那么

    //Page2.php
    include('Page1.php');
    
    echo $var;
    

    出于什么原因,它不会将$var的值打印到屏幕上?文件在同一个目录中,因此路径不应该是问题所在。我已经检查了php.ini文件,没有什么能真正跳出来。有什么想法吗?

    4 回复  |  直到 6 年前
        1
  •  0
  •   Mnebuerquo    17 年前

    如果是路径问题,您将在错误日志中看到警告。您还可以更改为“需要”而不是“包含”,这将变得很明显。

    echo getcwd();
    

    你也可以打印你的工作目录来找出问题所在。

    $var是在函数中创建的吗?如果是,请确保

    global $var;
    

    在函数的第一次赋值之前。

        2
  •  2
  •   Oli    17 年前

    可能的原因:

    • 当前的工作路径并不总是与文件的路径相同。例如,如果page2.php包含在更高的级别,则更高的级别将是路径。确保直接加载了page2.php,或者相应地移动page1.php。
    • 确保 $var 是你所期望的。在page1.php中回音确认。(这也会检查是否包含正确的文件)
    • 如果源不是这么简单,请确保您没有取消定义/清除 $var 任何地方。
        3
  •  0
  •   andyuk    17 年前

    我刚测试过:

    PGE1.PHP:

    <?php
    $foo = "bar"
    ?>
    

    PGE2.PHP:

    <?php
    include('page1.php');
    echo $foo;
    ?>
    

    这是可行的。

    您可能需要检查文件路径。var_dump()还可以方便地检查变量输出。

        4
  •  0
  •   Markus    17 年前

    检查你没有关掉整个 error_reporting . 可能include出错,所以变量永远不会包含在内。

    推荐文章