Отримання поточного виконуваного замикання в PHP 8.1

Перекладено ШІ 0 Laravel News 25 липня, 2025

PHP 8.5 готовий запропонувати нові можливості для роботи з рекурсією в замиканнях — тепер ви можете легко звертатися до виконуваного закриття. Дізнайтеся, як новий метод `getCurrent()` спрощує реалізацію рекурсивних функцій у нашій статті

У PHP 8.5 підтримуватиметься рекурсія у Closure за допомогою отримання інформації про поточний виконувач Closure (подяка Александру Добуа). Як зазначено в RFC:closure_self_reference, наразі обхідним варіантом є прив'язка змінної в Closure:

$fibonacci = function (int $n) use (&$fibonacci) {
    if ($n === 0) return 0;
    if ($n === 1) return 1;
    return $fibonacci($n - 1) + $fibonacci($n - 2);
};
 
echo $fibonacci(10) . "\n";

З початку PHP 8.5 ви зможете використовувати метод getCurrent() для отримання інформації про поточний виконувач Closure. Цей код пропонує інший підхід у порівнянні з оригінальним RFC, і автор назвав його "набагато простішою альтернативою":

$fibonacci = function (int $n) {
    if (0 === $n || 1 === $n) {
        return $n;
    }
 
    $fn = Closure::getCurrent();
 
    return $fn($n - 1) + $fn($n - 2);
};
 
echo $fibonacci(10) . "\n";

Якщо вас цікавить реалізація, зверніть увагу на Pull Request #18167 у вихідному коді PHP (дивіться eb65ec4).

Популярні

Інше, що варто прочитати

12 Оновлено 01 червня, 2026

Удосконалюйте свої проєкти Laravel за допомогою справжнього штучного інтелекту для кодування з Laravel Boost!

Готові підняти свій робочий процес у Laravel на новий рівень? У цій статті я розгляну Laravel Boost, інноваційний AI-допомічник для програмування, який зробить вашу розробку швидшою та продуктивнішою

17 Оновлено 01 червня, 2026

Налаштування Xdebug з Docker та PHP 8.4 всього за одну хвилину

Встановлення Xdebug може бути складним завданням, але в цій статті ми розкриємо, як швидко та просто налаштувати його за допомогою Docker на прикладі Laravel. Дочитайте до кінця, щоб дізнатися, як за кілька хвилин зробити Xdebug вашим надійним помічником у розробці

13 Оновлено 01 червня, 2026

Створення CLI-додатка за допомогою Laravel та Docker

Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!