Heim > Backend-Entwicklung > PHP-Tutorial > 把include放入函数里则包孕的变量不可调用

把include放入函数里则包孕的变量不可调用

WBOY
Freigeben: 2016-06-13 12:58:47
Original
1140 Leute haben es durchsucht

把include放入函数里则包含的变量不可调用?
1.php

<br />
echo $a;<br />
Nach dem Login kopieren


2.php
<br />
$a = "aaaaaaaaaaaa";<br />
include("1.php");<br />
Nach dem Login kopieren



这样写执行2.php可以正确得到输出,而下面这样却不可以
2.php
<br />
function loadFile($filename){<br />
    include $filename;<br />
}<br />
$a = "aaaaaaaaaaaa";<br />
loadFile("1.php");<br />
Nach dem Login kopieren


这是为什么呢?把include放入函数中,包含进来的文件就不能引用其变量了
------解决方案--------------------
<br />
function loadFile(){<br />
    echo $a;<br />
}<br />
$a = "aaaaaaaaaaaa";<br />
loadFile();<br />
Nach dem Login kopieren


你试试就知道了
------解决方案--------------------
变量作用域问题。

你把1.php include到函数内部了,那么在函数外面声明的变量是无法对其起作用的。除非你在函数内部global一下。或者在1.php中用$GLOBALS['a']来代替$a。

另外我有个同事也喜欢写一大堆文件,然后到处include,
我很抵触这种做法,这样造成了全局变量污染,经常搞的我找一个变量是哪里声明的或者声明一个变量时很费劲,怕引起冲突。而且代码很乱。

所以建议不要用这种做法。尽量把变量控制在一个个局部,不仅对php的性能有好处,代码逻辑也会更加清晰。
------解决方案--------------------
好吧,这是个作用域的问题.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage