把include放入函数里则包含的变量不可调用?
1.php
<br />echo $a;<br />
2.php
<br />$a = "aaaaaaaaaaaa";<br />include("1.php");<br />
这样写执行2.php可以正确得到输出,而下面这样却不可以
2.php
<br />function loadFile($filename){<br /> include $filename;<br />}<br />$a = "aaaaaaaaaaaa";<br />loadFile("1.php");<br />
这是为什么呢?把include放入函数中,包含进来的文件就不能引用其变量了
------解决方案--------------------<br />function loadFile(){<br /> echo $a;<br />}<br />$a = "aaaaaaaaaaaa";<br />loadFile();<br />
你试试就知道了
------解决方案--------------------变量作用域问题。
你把1.php include到函数内部了,那么在函数外面声明的变量是无法对其起作用的。除非你在函数内部global一下。或者在1.php中用$GLOBALS['a']来代替$a。
另外我有个同事也喜欢写一大堆文件,然后到处include,
我很抵触这种做法,这样造成了全局变量污染,经常搞的我找一个变量是哪里声明的或者声明一个变量时很费劲,怕引起冲突。而且代码很乱。
所以建议不要用这种做法。尽量把变量控制在一个个局部,不仅对php的性能有好处,代码逻辑也会更加清晰。
------解决方案--------------------好吧,这是个作用域的问题.
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn