将参数从父级传递给子函数

时间:2010-09-13 11:55:40

标签: php function

我正在尝试将参数从父函数传递给子函数,同时保持子函数无参数。我尝试了以下但它似乎不起作用。

public static function parent($param)
{
    function child()
    {
        global $param;

        print($param) // prints nothing
    }
}

3 个答案:

答案 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);
  }
}

https://www.php.net/manual/en/functions.anonymous.php