男女疯狂一边摸一边做羞羞视频|啊好深好硬快点用力别停动态图|亚洲一区无码中文字幕|特级无码毛片免费视频播放▽|久久狠狠躁免费观看|国内精品久久久久久网站

箭頭函數

箭頭函數是 PHP 7.4 的新語(yǔ)法,是一種更簡(jiǎn)潔的 匿名函數 寫(xiě)法。

匿名函數和箭頭函數都是 Closure 類(lèi)的實(shí)現。

箭頭函數的基本語(yǔ)法為 fn (argument_list) => expr。

箭頭函數支持與 匿名函數 相同的功能,只是其父作用域的變量總是自動(dòng)的。

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

示例 #1 箭頭函數自動(dòng)捕捉變量的值

<?php

$y 
1;

$fn1 fn($x) => $x $y;
// 相當于通過(guò) value 使用 $y:
$fn2 = function ($x) use ($y) {
    return 
$x $y;
};

var_export($fn1(3));
?>

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

4

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

示例 #2 箭頭函數自動(dòng)捕捉變量的值,即使在嵌套的情況下

<?php

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

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

示例 #3 合法的箭頭函數例子

<?php

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

?>

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

示例 #4 來(lái)自外部范圍的值不能在箭頭函數內修改

<?php

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

?>

更新日志

版本 說(shuō)明
7.4.0 新增箭頭函數語(yǔ)法。

注釋

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

男女疯狂一边摸一边做羞羞视频|啊好深好硬快点用力别停动态图|亚洲一区无码中文字幕|特级无码毛片免费视频播放▽|久久狠狠躁免费观看|国内精品久久久久久网站