经过几个小时的谷歌搜索和搜索答案后,我放弃了,并对php非常沮丧,没有基本错误的支持。无论如何,这是我的功能,我做错了什么?
$accessToken = function(){
$array = array(
"foo" => "bar",
"bar" => "foo"
);
$obj = json_encode($array);
$obj = json_decode($obj);
return $obj->foo;
};
$getInfo = function(){
$code = $accessToken();
return $code;
};
$getInfo();
我收到错误
注意:未定义的变量:第43行的C:\ inetpub \ wwwroot \ mysite \ lab \ cfhttp.php中的accessToken
致命错误:第43行的C:\ inetpub \ wwwroot \ mysite \ lab \ cfhttp.php中的函数名必须是字符串
答案 0 :(得分:4)
$accessToken
不在$getInfo()
$accessToken = function(){
$array = array(
"foo" => "bar",
"bar" => "foo"
);
$obj = json_encode($array);
$obj = json_decode($obj);
return $obj->foo;
};
$getInfo = function($accessTokenFunction){
$code = $accessTokenFunction();
return $code;
};
$getInfo($accessToken);
答案 1 :(得分:2)
use ()
在此范围内采用变量
$getInfo = function() use ($accessToken) {
$code = $accessToken();
return $code;
};
答案 2 :(得分:1)
在PHP中,您通常以另一种方式定义函数。请尝试以下方法:
function accessToken() {
$array = array(
"foo" => "bar",
"bar" => "foo"
);
$obj = json_encode($array);
$obj = json_decode($obj);
return $obj->foo;
}
function getInfo() {
$code = accessToken();
return $code;
}
getInfo();
您还可以在此处查看http://php.net/manual/en/functions.variable-functions.php和http://php.net/manual/en/functions.user-defined.php