Новое в PHP 5.3: замыкания (лямбда-функции)

Замыкания (closures, лямбда-функции, анонимные функции) есть функция, не привязанная к конкретному имени функции.

Их удобно использовать в качестве callback-параметра в функциях.

Пример1

Замыкание может быть значением переменной. В таком случае переменная становится экземпляром встроенного класса Closure («замыкание»). Присваивание значения при этом ничем не отличается от обычного присваивания значения (включая и точку с запятой в конце).

Пример2

Замыкания имеют доступ к переменным из родительского контекста. Для этого такая переменная должна быть объявлена в заголовке анонимной функции с использованием ключевого слова use. Это не то же самое, что и глобальные переменные. Глобальные переменные объявлены в глобальном контексте, который не меняется в зависимости от вызванной функции. Родительский контекст для замыкания ограничен функцией, в которой замыкание объявлено (но не функцией, вызвавшей его).

Пример3. Контексты.

Внутри замыканий можно использовать функции func_num_args(), func_get_arg() и func_get_args().

Документация

LEAVE A COMMENT