语言是Apache 2.2服务器上的PHP 5.4.这是一个由ajax调用的脚本.
$usr = new User();
function getMyName(){
echo $usr->username;
}
getMyName();
由于某种原因,$name不在范围内.为什么会这样呢?我也尝试过直接调用脚本并得到相同的结果.我试图用use($name)来解决,但是显然只适用于匿名函数(闭包)?
当我这样做时,它可以工作,但是很荒谬:
$usr = new User();
$name = $usr->username;
function getMyName($n){
echo $n;
}
getMyName($name);
解决方法:
$usr = new User();
function getMyName(){
global $usr;
echo $usr->username;
}
getMyName();
或者:
$usr = new User();
function getMyName($usr){
echo $usr->username;
}
getMyName($usr);