Анонимные функции в PHP на заметку

By | 15/03/2011

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

О некоторых способах вызова функций в PHP

Допустим, есть функция:

Вызвать ее можно присвоив новой переменной имя функции и затем вызвать эту переменную в качестве функции:

Теперь рассмотрим применение данной техники в ООП:

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

Рассмотрим пример использования анонимной функции –
function ($v) { return $v > 2; }

Ту же саму функцию можно переписать так, присвоив анонимную функцию переменной, а потом вызвав ее:

Примеры использования нового ключевого слова USE (начиная с PHP 5.3)

Рассмотрим пример:

В этом примере ключевое слово USE позволяет анонимным функциям получить доступ к внешним переменным. Чтобы было понятнее, рассмотрим еще один более простой пример:

Таким образом, если мы хотим использовать в анонимных функциях переменные из глобальной области видимости, то должны их через USE. Кроме того, по умолчанию, таким образом, передаются только значение переменной, а если Вам нужно, чтобы она менялось за пределами анонимной функции, то ее необходимо передавать по адресу, вот так:

В приведенном примере, переменная $x будет меняться при каждом вызове анонимной функции. Из пользы от использования анонимных функций можно отметить то, что они не засоряют пространство имен, а уничтожают все переменные автоматически после окончания своего выполнения.