久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

PHP箭頭函數(shù)

2023-10-23 237

一、概念

箭頭函數(shù)(Arrow functions)是PHP 7.4引入的一種新語(yǔ)法,它提供了一種更簡(jiǎn)潔的匿名函數(shù)寫法。與傳統(tǒng)的匿名函數(shù)不同,箭頭函數(shù)具有自動(dòng)綁定父作用域變量的特性。箭頭函數(shù)的基本語(yǔ)法為:fn (argument_list) => expr,其中 argument_list 是參數(shù)列表,expr 是函數(shù)體表達(dá)式。

二、箭頭函數(shù)語(yǔ)法

1、箭頭函數(shù)自動(dòng)捕捉變量的值

當(dāng)表達(dá)式中使用的變量是在父作用域中定義的,它將被隱式地按值捕獲。在下面的例子中,函數(shù) $fn1 和 $fn2 的行為是一樣的。

<?php
$y = 1;
$fn1 = fn($x) => $x + $y;
// 相當(dāng)于通過(guò) value 使用 $y:
$fn2 = function ($x) use ($y) {
return $x + $y;
};
var_export($fn1(3));
?>

以上示例會(huì)輸出:

4

在箭頭函數(shù)嵌套的情況下同樣有效。

2、自動(dòng)捕捉變量的值

箭頭函數(shù)自動(dòng)捕捉變量的值,即使在嵌套的情況下:

<?php
$z = 1;
$fn = fn($x) => fn($y) => $x * $y + $z;
// 輸出 51
var_export($fn(5)(10));
?>

3、合法的箭頭函數(shù)

和匿名函數(shù)一樣,箭頭函數(shù)語(yǔ)法同樣允許標(biāo)準(zhǔn)的函數(shù)聲明,包括參數(shù)和返回類型、缺省值、變量,以及通過(guò)引用傳遞和返回。以下都是箭頭函數(shù)的有效例子:

<?php
fn(array $x) => $x;
static fn(): int => $x;
fn($x = 42) => $x;
fn(&$x) => $x;
fn&($x) => $x;
fn($x, ...$rest) => $rest;
?>

4、來(lái)自外部范圍的值不能在箭頭函數(shù)內(nèi)修改

箭頭函數(shù)會(huì)自動(dòng)綁定上下文變量,這相當(dāng)于對(duì)箭頭函數(shù)內(nèi)部使用的每一個(gè)變量 $x 執(zhí)行了一個(gè) use($x)。這意味著不可能修改外部作用域的任何值,若要實(shí)現(xiàn)對(duì)值的修改,可以使用匿名函數(shù)來(lái)替代。

<?php
$x = 1;
$fn = fn() => $x++; // 不會(huì)影響 x 的值
$fn();
var_export($x); // 輸出 1
?>

注意: 可以對(duì)箭頭函數(shù)使用 func_num_args(), func_get_arg(), 和 func_get_args() 函數(shù)。

  • 廣告合作

  • QQ群號(hào):4114653

溫馨提示:
1、本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。郵箱:2942802716#qq.com(#改為@)。 2、本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)裁,轉(zhuǎn)載請(qǐng)注明出處“站長(zhǎng)百科”和原文地址。
PHP箭頭函數(shù)
下一篇: PHP類