Разработчику. Сборник рецептов PHP
Задавайте вопросы

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

Вернуться назад

Задача

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

Решение

Это делается при помощи функции 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); '));

См. также

Документацию по функции create_function() на http://www.php.net/create-function и по функции usort() на http://www.php.net/usort.

Вернуться назад

Рейтинг@Mail.ru

Яндекс.Метрика

Индекс цитирования

Рейтинг Сайтов ДОСКИ.РУ