静态方法调用的回调

时间:2014-01-22 23:33:48

标签: php static

我有:

function sayName($param)
{
    echo $param();
}

class Robin
{
    public static $name = "Robin Webber";
    public static function bearName()
    {
        echo static::$name;
    }
}

sayName(array("Robin", 'bearName'));

这段代码对我来说有点直观。

如何将数组传递给sayNam()调用类Robin的静态方法?

对此行为的任何PHP文档的引用都会有所帮助。

1 个答案:

答案 0 :(得分:-1)

做到:

function sayName(array $params)
{
  $class = array_shift($params);
  $method = array_shift($params);

  call_user_func_array($class.'::'.$method,array());

  // or call_user_func($class.'::'.$method);
}

class Robin
{
  public static $name = "Robin Webber";

  public static function bearName()
  {
     echo static::$name;
  }
}

sayName(array("Robin", 'bearName'));
//Robin Webber

查看更多call_user_funccall_user_func_array