我正在尝试将参数从父函数传递给子函数,同时保持子函数无参数。我尝试了以下但它似乎不起作用。
public static function parent($param)
{
function child()
{
global $param;
print($param) // prints nothing
}
}
答案 0 :(得分:3)
您可以使用PHP 5.3及其中的lambda函数:
public static function parent($param) {
$child = function($param) {
print($param);
}
$child($param);
}
如果您需要使用早期版本的PHP,请尝试create_function。
答案 1 :(得分:1)
我认为您在child()
中调用的全局不会引用该范围。尝试使用真正的全局变量运行它。
答案 2 :(得分:0)
正确的方法是在父函数中创建一个匿名函数,然后使用“ use”关键字。
public static function parent($params) {
function() use ($params) {
print($params);
}
}