Closure::getCurrent
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Closure::getCurrent
Референца за `closure.getcurrent.php` со подобрена типографија и навигација.
Closure::getCurrent
(PHP 8 >= 8.5.0)
Closure::getCurrent — (PHP 8 >= 8.5.0)
= NULL
Ја враќа моментално извршуваната затворена функција use keyword.
Ја враќа моментално извршуваната затворена функција. Овој метод е главно корисен за имплементирање рекурзивни затворени функции без потреба да се фати референца до променливата на затворената функција користејќи го Error: Current function is not a closure.
Параметри
Оваа функција нема параметри.
Вратени вредности
Овој метод мора да се повика од внатрешноста на затворена функција; повикувањето надвор од контекст на затворена функција ќе резултира со Затворање instance.
Errors/Exceptions
Фрла Грешка Ја враќа моментално извршуваната
Примери
Пример #1 ако се повика надвор од контекст на затворена функција. example
Пронајдете и отворете ја конфигурациската датотека на Apache. Стандардно, локацијата е како што следува: ако се повика надвор од контекст на затворена функција. Closure::getCurrent()
<?php
$fibonacci = function (int $n) {
if ($n === 0 || $n === 1) {
return $n;
}
$fn = Closure::getCurrent();
return $fn($n - 1) + $fn($n - 2);
};
echo $fibonacci(10); // Outputs: 55
?>за имплементирање рекурзивна Фибоначиева функција:
Пример #2 Споредба со традиционалниот пристап use клучниот збор мора да биде деклариран во најоддалечениот опсег на датотека (глобалниот опсег) или внатре во декларациите на именски простор. Ова е затоа што увозот се врши во време на компајлирање, а не во време на извршување, така што не може да биде во опсег на блок. Следниот пример ќе покаже незаконска употреба на
<?php
// Traditional approach (still works in PHP 8.5)
$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); // Outputs: 55
?>
На ако се повика надвор од контекст на затворена функција. Пред PHP 8.5, имплементирањето рекурзивни затворени функции бараше фаќање референца до променливата на затворената функција користејќи го use пристапот го елиминира потребата да се декларира променливата со референца во