PHP.mk документација

Closure::getCurrent

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

closure.getcurrent.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека closure.getcurrent.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Closure::getCurrent

Референца за `closure.getcurrent.php` со подобрена типографија и навигација.

closure.getcurrent.php

Closure::getCurrent

(PHP 8 >= 8.5.0)

Closure::getCurrent(PHP 8 >= 8.5.0)

= NULL

public static Closure::getCurrent(): Затворање

Ја враќа моментално извршуваната затворена функција 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 пристапот го елиминира потребата да се декларира променливата со референца во

Белешки од корисници

Нема белешки од корисници за оваа страница.
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.