代码之家  ›  专栏  ›  技术社区  ›  Emanuil Rusev

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

  •  1
  • Emanuil Rusev  · 技术社区  · 16 年前

    我试图将一个参数从父函数传递给子函数,同时保持子函数没有参数。我试过以下方法,但似乎不起作用。

    public static function parent($param)
    {
        function child()
        {
            global $param;
    
            print($param) // prints nothing
        }
    }
    
    2 回复  |  直到 16 年前
        1
  •  3
  •   halfdan    16 年前

    您可以使用PHP5.3及更高版本中的lambda函数:

    public static function parent($param) {
      $child = function($param) {
        print($param);
      }
    
      $child($param);
    }
    

    如果需要使用早期版本的PHP,请尝试 create_function .

        2
  •  1
  •   Tomasz Kowalczyk    16 年前

    child() 不涉及该范围。试着用真正的全局变量运行它。

        3
  •  0
  •   Yann Chabot    7 年前

    正确的方法是在父函数中创建一个匿名函数,然后使用“use”关键字。

    public static function parent($params) {
      function() use ($params) {
        print($params);
      }
    }
    

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

    推荐文章