function loadFile(){
    echo $a;
}
$a = "aaaaaaaaaaaa";
loadFile();
你试试就知道了

解决方案 »

  1.   

    变量作用域问题。你把1.php include到函数内部了,那么在函数外面声明的变量是无法对其起作用的。除非你在函数内部global一下。或者在1.php中用$GLOBALS['a']来代替$a。另外我有个同事也喜欢写一大堆文件,然后到处include,
    我很抵触这种做法,这样造成了全局变量污染,经常搞的我找一个变量是哪里声明的或者声明一个变量时很费劲,怕引起冲突。而且代码很乱。所以建议不要用这种做法。尽量把变量控制在一个个局部,不仅对php的性能有好处,代码逻辑也会更加清晰。
      

  2.   


    感谢,已结贴,能否多问一句,loadFile是我用的框架里封装include的一个方法,用这个方法引入文件后不能调用里面的变量,那引入文件还有什么用呢?
      

  3.   


    这个loadFile方法里面除了include文件具体还做了什么?是否返回什么值?能否把你框架里这个方法的源码贴出来看下。到是有几种可能:
    1 只引用静态文件,比如引入一段html用来美化输出的结果。并不需要与函数外部进行互动。
    2 此函数有个返回值,仅仅希望你接收返回值,不与include中的文件互动。
    3 需要你在include的文件内部把所有工作做完,包括定义变量,处理,输出。
    4 此函数是类内部的一个方法,引入文件后,将处理的结果赋给类成员变量,类成员变量在类内部是可以跨方法使用的。