Intereting Posts
как эффективно я могу использовать filter_var ($ email, FILTER_VALIDATE_EMAIL).? Laravel whereHas не работает в newQuery () Как начинать недели в воскресенье? Почему динамические конструкции сложны для компиляторов php (HPHP)? Преобразование специальных символов (другого языка) на английский в PHP Как вы обрезаете пробел в начале и конце каждой новой строки с помощью PHP или регулярного выражения Значения в UTF-8, закодированные как NULL в JSON MySQL PHP count (*) возвращает что-то странное Laravel 5 и странная ошибка: фигурные скобки на спине Кажется, что preg_match достигает предела при использовании двух совпадений cURL get_data ($ url) с абсолютным URL-адресом Эквивалент функции склепа PHP в Java Как проверить несколько слов в строке? (возвращает true, есть хотя бы одно из этих слов) Поиск хорошего учебника по php mysqli class Как я могу указать автономный веб-сервер selenium, какую версию firefox использовать?

Могу ли я использовать переменную для вызова метода?

Можно ли вызвать метод, когда имя метода хранится в переменной? Что такое синтаксис? Предположим, у меня есть следующий код PHP:

class MyClass { public $default; function index() { /* call method named by $this->default */ } function method_1() {} function method_2() {} ... } 

index() вызывается по умолчанию, когда класс инициализируется, если другой метод не вызван.

Как я могу вызвать один из методов из index() используя свойство MyClass->$default ? То есть, если бы я обычно писал:

 function index() { $this->method_1(); } 

могу ли я использовать переменную по умолчанию для вызова правильного метода?

Могу ли я использовать переменную для вызова метода?

Да, ты можешь. Например, внутри объекта:

 $method = "method_1"; if (method_exists($this, $method)) $this->{$method}(); 

Да, вы можете использовать этот синтаксис:

 $methodname = 'method_1'; $this->$methodname(); 

Существует также метод обхода call_user_func :

 call_user_func( array($this,$methodname), $arg...);