Метод анонимного класса - КАК?

Статус
В этой теме нельзя размещать новые ответы.

dr0id

Создатель
Регистрация
14 Апр 2008
Сообщения
42
Реакции
3
Код, вида:

Код:
<?php
$function_name = 'myfunc';
function myfunc()
{
    return 'hello, world';
}
echo $function_name();
?>

Работает без проблем. Но если впихнуть функцию в класс (для того, чтобы спрятать ее внутрь пространства имен класса), вроде этого:

Код:
<?php
class my_class
{
    static function my_func()
    {
        return 'hello, world';
    }
}
$class_name = 'my_class';
$function_name = 'my_func';
echo $class_name::$function_name();
?>

То, такая конструкция не работает. Подскажите, пожалуйста, как можно побороть это? Нужен доступ к статическому методу класса. При этом имя класса нужно задать при помощи переменной. Заранее огромное спасибо.

Добавлено позже:

Немного стыдно признаться, нашел решение при помощи вызова функции "call_user_func(array($my_class, $my_func))". Все оказалось так просто... Но теперь возник следующий вопрос:

Как проверить, описана ли функция $my_func в классе или нет? Дело в том, что функция method_exists() требует указания идентификатора объекта, а не имя класса. Есть ли способ проверить наличие метода класса без создания экземпляра этого класса?
 
Если указать первым аргументом строковое имя класса?

PHP:
<?php
if (is_callable(array('theclassname','themethod')))
    echo 'ok';
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху