2014-01-22 6 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/en/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_func и call_user_func_array.

+0

ahahaha, downvoted .... Бульон, который положил минус, он работает). – voodoo417

+0

Это не отвечает на вопрос. Они спрашивали о поведении использования массивов в качестве обратных вызовов. Кроме того, это не единственный способ использования статических методов callables. – ajshort

+0

«Это не отвечает на вопрос ...» Тогда что это такое? Я помог с проблемой и дал ссылки. «.. используя массивы как обратные вызовы ..» - что такое ерунда ??? – voodoo417

Смежные вопросы