当前目录里包含mountain/tree.php文件,其中定义了一个test数组。function test(){
require_once 'mountain/tree.php';
}
test();
require_once 'mountain/tree.php';
var_dump($test);为什么这段代码输出结果为NULL呢。
而将require_once 换成require 以后就输出数组的结果了呢,再或者去掉函数定义,重复的包含两次require_once仍然是有结果的阿!

解决方案 »

  1.   

    $test
    是在 'mountain/tree.php' 里?
      

  2.   

    可能跟变量的作用域有关,因为你是在函数体内部进行require,那在tree.php中定义的$test数组的作用域只是在函数内部,test()函数一旦执行完毕,$test数组也就不存在了,最好把tree.php完整代码贴出来,看看你是怎么定义数组的。
      

  3.   

    当一个文件被包含时,其中所包含的代码继承了 include 所在行的变量范围。从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。