Intereting Posts
Как избежать ограничений на вложение / создание объектов PHP? Форма без обновления страницы Можно ли изменить шаблоны, созданные командой перенаправления ремесленника? Предупреждение: stream_socket_enable_crypto (): этот поток не поддерживает SSL / crypto в C: \ xampp \ htdocs \ 12work \ class.smtp.php в строке 197 Тестирование соединения php / mysqli Коллекция объектов Symfony2 – как добавить / удалить связь с существующими объектами? Создать таблицу HTML из таблицы sql Как узнать, когда MySQL UPDATE был успешным по сравнению с фактически обновленными данными? Архитектура приложения стиля MVC, обслуживающая API CodeIgniter «Тип файла, который вы пытаетесь загрузить, не разрешен». Что такое эквивалент PHP статической переменной на других языках? Как отслеживать по номеру отслеживания уникальный идентификатор? Разница в поведении func_num_args, func_get_arg и func_get_args от php 5.2 до 5.3 Обновление столбца MySQL, содержащего точку (.) В ее имени Отправить письмо активации пользователю

Как я могу вызвать статический метод из класса, если все, что у меня есть, – это строка имени класса?

Как мне заставить что-то подобное работать?

$class_name = 'ClassPeer'; $class_name::doSomething(); 

В зависимости от версии PHP:

 call_user_func(array($class_name, 'doSomething')); call_user_func($class_name .'::doSomething'); // >5.2.3 

Чтобы развязать мощь автозаполнения IDE и обнаружения ошибок, используйте это:

 $class_name = 'ClassPeer'; $r = new \ReflectionClass($class_name ); // @param ClassPeer $instance $instance = $r->newInstanceWithoutConstructor(); //$class_name->doSomething(); $instance->doSomething(); 

В основном здесь мы вызываем статический метод для экземпляра класса.

Используйте call_user_func . Также читайте callbacks PHP.

 call_user_func(array($class_name, 'doSomething'), $arguments); 

Отражение (поддерживает PHP 5) – как вы это сделаете. Прочитайте эту страницу, и вы сможете выяснить, как вызвать такую ​​функцию.

 $func = new ReflectionFunction('somefunction'); $func->invoke(); 

Ссылка на документацию