PHP : виклик анонімної функції також відому як лямбда функції

На жаль в PHP немає аналога Javascript-конструкції для самовиклику анонімної функції - ( function () {} )();

Але це можливо зробити за допомогою функції CALL_USER_FUNC, наприклад ось так:


<?php

$name='World';

echo call_user_func ( function ( $var1 ) {
  return 'Hello '.$var1.' !';
}, $name );




Ключове слово USE дозволяє використовувати прийом замикання, тобто з його допомогою ми можемо достукатися до зовнішніх змінних. Однак є нюанс, якщо використовувати ім'я без знака & ми не зможемо поміняти значення нашої глобальної змінної. Потрібно використовувати якось так:

<?php
$name = 'World';

$setName = function($n) use(&$name) {
   $name = $n;
};

$setName('Ukraine');

echo 'Hello '.$name;





УВАГА!
Можливо Вам потрібно зберегти сумісність з доволі старими версіями, тому хочу нагадати - лямбда функції працюють з версії PHP 5.3.

Вы только посетили наш сайт, КОММЕНТИРОВАНИЕ будет доступно через несколько минут.
возможно у Вас отключен javascript, если включен - просто обновите страницу