Введение

Функции с переменными позволяют использовать переменную как функцию. Если к переменной добавить скобки (), PHP ищет функцию с именем, совпадающим со значением переменной, и выполняет её. Например:
Результат:
Как это работает:
  1. Определяется переменная $f и ей присваивается строка 'strlen'.
  2. Переменная $f используется как функция, в которую передаётся строка 'Hello'.
  3. При встрече конструкции $f() PHP ищет функцию strlen(). Поскольку это встроенная функция, она вызывается.
  4. Если функция с таким именем не найдена, возникает ошибка. Например:
Ошибка:
В этом примере возникает ошибка, так как функция len() не определена.

Использование функций с переменными для вызова метода

Функции с переменными позволяют вызывать методы объекта. Синтаксис вызова метода через функцию с переменной выглядит так:
Обратите внимание, что перед именем переменной также ставится знак $.  Например:
Как это работает
  1. Определяется класс Str с тремя методами для преобразования строки к нижнему, верхнему регистру и регистру заголовка.
  2. Метод convert() принимает строку. Если аргумент формата не совпадает с именами методов (loweruppertitle), выбрасывается исключение. Иначе вызывается соответствующий метод.
Пример использования:
Результат:

Использование функций с переменными для вызова статического метода

Пример вызова статического метода через функцию с переменной:
Класс Str содержит конструктор, метод __toString() и статический метод compare(), который сравнивает два экземпляра класса.
Вызов статического метода через переменную:

Итог

  • Чтобы вызвать функцию по имени из переменной, добавьте к ней скобки ().
  • Для вызова метода объекта используйте конструкцию $this->$variable().
  • Для вызова статического метода класса - ClassName::$variable().