|
create_function(PHP 4 >= 4.0.1, PHP 5) create_function — Создаёт анонимную (лямбда) функцию Описание
string create_function
( string $args
, string $code
)
Создаёт анонимную функцию из переданных параметров и возвращает её уникальное имя. Список параметровОбычно параметры передаются строкой в одинарных кавычках. Основанием для использования строк в одинарных кавычках является защита имён переменных от обработки, другими словами, если вы будете использовать двойные кавычки, то необходимо будет проэкранировать все имена переменных, вот так: \$avar.
Возвращаемые значенияВозвращает уникальное имя функции в виде строки, или FALSE в случае ошибки. Примеры
Пример #1 Создание анонимной функции с помощью create_function() Вы можете использовать эту функцию (к примеру) для создания функций на основании информации, полученной во время выполнения программы:
<?php Или, возможно, чтобы иметь общий обработчик для применения набора операций к списку параметров:
Пример #2 Создание функции-обработчика с помощью create_function()
<?php Результат выполнения данного примера: Используем первый массив анонимных функций параметры: 2.3445, M_PI тригонометрия: -1.6291725057799 гипотенуза: 3.9199852871011 b*a^2 = 4.8103313314525 min(b^2+a, a^2,b) = 8.6382729035898 ln(a)/b = 0.27122299212594 Использование второго массива анонимных функций ** "Варабей под кровлю, а сова на ловлю" и "Варкалось. Хливкие шорьки пырялись по наве" ** для меня одинаковы! (смотря по первым 3 символам) CRC: -1622439884, -458910041 similar(a,b) = 25(35.460992907801%) Однако, вероятно, наиболее обоснованное использование лямбда (анонимных) функций - это создание функций-обработчиков, например, при использовании array_walk() или usort()
Пример #3 Использование анонимной функции как функции-обработчика
<?php Результат выполнения данного примера: Array ( [0] => о, манго [1] => эх, манго [2] => то манго [3] => это манго ) Сортировка строк по их длине
<?php Результат выполнения данного примера: Array ( [0] => мало [1] => много [2] => большая строка [3] => строка строка строка ) Теперь отсортируем их в обратном порядке:
<?php Результат выполнения данного примера: Array ( [0] => строка строка строка [1] => большая строка [2] => много [3] => мало ) |
|