Создание динамических функций

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

Решение
Это делается при помощи функции create_function():

$add = create_function('$i,$j', 'return $i+$j;');
$add(1, 1); // возвращает 2

Обсуждение
Первый параметр функции create_function() представляет собой строку, содержащую аргументы функции, а второй параметр – тело функции. Функция create_function() работает крайне медленно, поэтому, если возможно заранее определить функцию, лучше так и сделать.

Чаще всего функция create_function() используется при разработке пользовательских вариантов функций сортировки usort() или array_ walk():

// сортирует файлы в порядке, обратном обычному
usort($files, create_function('$a, $b', 'return strnatcmp($b, $a);'));

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Возвращение более одного значения
Возвращение значений по ссылке
Возвращение информации об ошибке
Вызов переменных функций
Доступ к глобальной переменной внутри функции

Вернуться в раздел: PHP / 6. Функции