Замыкания (closures)
Доступно в PHP >= 5.3
<?php
/*
* Простой пример использования лямбда-функций
*/
$lambda = function()
{
echo 'Hello World!';
};
$lambda();
/*
* Использование внешних переменных в лямбда-функциях
*/
$hello = "Hello";
$helloWorld = function () use ($hello)
{
echo $hello . ", world!";
}
/*
* Использование внешних переменных в лямбда-функциях по ссылке
*/
$x = 1;
$increment = function () use (& $x)
{
$x++;
}
$increment();
var_dump($x);
/*
* Обращение к экземпляру класса как к функции
*/
class MyClass
{
public function __invoke()
{
echo "Hello World!";
}
}
$class = new MyClass;
$class();