2016-12-28 3 views
0

У меня есть несколько методов, чьи возвращения кэшируются, а ключ кеша - это имя самого метода.Вызов статической функции по имени метода?

Например, если это мой класс

class tester { 
    static function test() { 
    $data = build_data(); 
    cache(__METHOD__, $data); 
    } 
} 

Значение ключа кэша tester::test.

Я использую функциональность для нагрева кеша. Если у меня есть все ключи кеша, я могу просто позвонить им по одному.

foreach ($keys as $key) { 
    $key(); 
} 

Но, видимо, я не могу назвать строку как 'tester::test' таким образом Fatal error: Call to undefined function tester::test() ...

Должен ли я сделать строковое синтаксический анализ, чтобы растащить имя класса и метод, а затем вызвать их как $class::$method()? Или есть более простой способ сделать это?

+4

Должен быть такой же вариант использования, как здесь http://stackoverflow.com/questions/2108795/dynamic-static-method-call-in-php –

ответ

0

Спасибо Михаэлю Лису за то, что он увязал вопрос в своем комментарии; получается, что call_user_func() делает то, что я ищу.