2014-01-22 44 views
0

的我:回调静态方法调用

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

http://www.php.net/manual/zh/language.types.callable.php – ajshort

回答

-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

+0

ahahaha,downvoted ....肉汤,谁把减号,它的作品)。 – voodoo417

+0

这不回答这个问题。他们询问使用数组作为回调的行为。而且,这不是使用静态方法可调参数的唯一方法。 – ajshort

+0

“这不回答这个问题......”那么这是什么:)?我帮忙解决问题,并给了链接。“..使用数组作为回调..” - 什么是废话? – voodoo417