我有以下简单的代码:
$a = 'hello';
function myfunc() {
echo 'in myfunc';
}
class myclass {
function __construct() {
myfunc();
echo $a;
}
}
$m1 = new myclass();
Run Code Online (Sandbox Code Playgroud)
由于$ a在全局范围内,并且在未先声明为全局变量的情况下无法从类内部访问,因此该方法内的echo $ a会产生您所期望的错误。PHP手册中对此进行了说明。
调用myfunc()确实有效,但我不明白为什么。它也在全局范围内声明,但是该方法可以在不首先将其声明为全局范围的情况下访问它。我似乎在PHP手册中找不到任何能解释其工作原理的内容。
也许我从事PHP的时间已经太久了,这是如此简单,以至于我忘记了它是如何工作的。任何理解或链接到PHP手册中指出您可以从类方法中访问全局函数的地方,将不胜感激。
提前致谢。