php прогамитически получает доступ к статическим функциям - PullRequest
0 голосов
/ 09 декабря 2010

Что лучше и почему:

call_user_func(array($class, $method), $params);

или

$class::$method($params);

второй подход работает только в PHP 5.3. Я в старшей виррионии в фатальную ошибку кидаю неожиданную T_PAAMAYIM_NEKUDOTAYIM. (мой ide думает, что это тоже синтаксическая ошибка. Но это работает)

Ответы [ 3 ]

3 голосов
/ 09 декабря 2010

Ну, если для вас важна мобильность, то очевидный ответ, что вы должны использовать первый способ.Если вы знаете, что вы всегда нацелены как минимум на PHP 5.3, то вам следует использовать метод, который вам удобнее всего.$class::$method($params); короче и чище, поэтому я бы сам пошел на это.

1 голос
/ 09 декабря 2010

Оба в порядке. По моему мнению, второе более синтаксически ясно, хотя. Как вы сказали, единственным недостатком является то, что он требует 5,3 +.

0 голосов
/ 10 декабря 2010

В PHP 5.3.0 также есть функция forward_static_call () , хотя есть несколько больше ограничений на ее использование

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...