亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP 7.4 新語法之箭頭函數實例詳解

2024-09-04 11:42:16
字體:
來源:轉載
供稿:網友

短閉包,也叫做箭頭函數,是一種用 php 編寫的短函數.這篇文章主要介紹了PHP 7.4 新語法之箭頭函數,需要的朋友可以參考下。

短閉包,也叫做箭頭函數,是一種用 php 編寫的短函數.當向函數中傳遞閉包時,這個功能是非常有用的,比如使用 array_map 或是 array_filter函數時.

這就是它們看起來的樣子:

  1. // Post 對象的集合 
  2. $posts = [/* … */]; 
  3. $ids = array_map(fn($post) => $post->id, $posts); 

而以前,你必須這樣寫:

  1. $ids = array_map(function ($post) { 
  2.   return $post->id; 
  3. }, $posts); 

我們來總結一下短閉包函數如何使用.

在 PHP 7.4 里可用

以 fn 關鍵字開頭

只能包含 一個 表達式, 即返回表達式

return 關鍵字可忽略

參數和返回類型均可做類型暗示

上面示例更嚴格的類型限定寫法可寫作:

$ids = array_map(fn(Post $post): int => $post->id, $posts);

有兩點需要提及:

還允許使用擴展操作符

允許引用,兩個參數都可以作為返回值

假如你想要通過引用的方式返回結果,應該使用以下語法:

fn&($x) => $x

簡而言之,除了只允許一個表達式以外,簡短的閉包和普通閉包的功能是一樣的。

單行

你應該正確的理解它:短閉包只能有一個表達式。這意味著閉包體中不能有多行。

原因如下:短閉包的目的是為了減少冗余。當然,在任何情況下, fn 都比 function 短。然而, RFC 的創建者 Nikita Popov 認為,如果你要處理的是多行表達式的函數,那么使用閉包獲得的益處就更少了。

畢竟,多行閉包的定義已經很冗余了,所以,有和沒有這2個關鍵字( function 和 return )將不會有太大區別。

你是否同意這個觀點取決于你自己。雖然我可以在我的項目中想到很多單行閉包的場景,但也有很多多行閉包的情況,從個人角度,我會喜歡這些情況下的簡短語法。

不過還是有希望的:未來可能會添加多行短閉包,但那也是一個單獨的 RFC 。

外部作用域的值

短閉包和普通閉包的另一個顯著特征是,短閉包不需要用 use 關鍵字就能訪問外部作用域的數據。

$modifier = 5;

array_map(fn($x) => $x * $modifier, $numbers);

需要注意的是,不能修改外部范圍中的變量。因為它屬于值傳遞而不是引用傳遞。這意味著你可以改變短閉包內的 $modifier 變量,但它不會對外部作用域中的 $modifier 變量產生影響。

當然,有一個例外,那就是 $this 關鍵字,它的作用與普通閉包中的作用完全相同:

array_map(fn($x) => $x * $this->modifier, $numbers);

發展前景

我已經提到過的多行閉包仍然是將來的一個發展可能.另外一個在我腦海中的想法就是在允許在類中使用短閉包,比如 getters 和 setters 函數.

  1. class Post { 
  2.   private $title
  3.  
  4.   fn getTitle() => $this->title; 

總而言之,短閉包是一個很受歡迎的特性,盡管有很多地方需要提高.其中最有可能就是多行閉包了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美日韩精品专区| 国内精品久久久久久| 欧美野外猛男的大粗鳮| 国产v综合ⅴ日韩v欧美大片| 亚洲最新av在线网站| 亚洲男人av电影| 亚洲欧美一区二区三区情侣bbw| 中文字幕日韩专区| 午夜精品理论片| 91成人在线视频| 色av中文字幕一区| 国产成人在线播放| 97国产成人精品视频| 国产精品18久久久久久首页狼| 俺去了亚洲欧美日韩| 国产视频精品一区二区三区| 一本色道久久88综合日韩精品| 国产精品一区二区三区毛片淫片| 欧美中文在线免费| 亚洲国产精品嫩草影院久久| 91精品久久久久久久久久| 亚洲成色777777女色窝| 日韩免费高清在线观看| 国产又爽又黄的激情精品视频| 久久精品最新地址| 久久欧美在线电影| 色与欲影视天天看综合网| 国产精品久久视频| 久久久这里只有精品视频| 日韩在线观看成人| 国产一区二区三区日韩欧美| 91禁国产网站| 91精品国产电影| 久久久久久久97| 大桥未久av一区二区三区| 中文字幕国产亚洲2019| 亚洲国产精品va在线看黑人| 日韩av在线天堂网| 亚洲成人免费网站| 中文字幕亚洲专区| 亚洲一区二区三区sesese| 色先锋资源久久综合5566| 久久久久在线观看| 欧美午夜精品久久久久久人妖| 精品亚洲aⅴ在线观看| 国产精品成人品| 亚州成人av在线| 亚洲天堂男人天堂| 日韩美女免费视频| 国产精品爽爽爽爽爽爽在线观看| 中文字幕日韩有码| 久久精品一偷一偷国产| 中日韩美女免费视频网址在线观看| 亚洲аv电影天堂网| 久久综合九色九九| 国产精品高精视频免费| 精品久久久久久久久久国产| 91国产高清在线| 在线看欧美日韩| 国产精品一区二区久久国产| 高清欧美性猛交| 日日摸夜夜添一区| 国产一区二区三区网站| 国产偷国产偷亚洲清高网站| 亚洲人成在线观看| 播播国产欧美激情| 91国产高清在线| 福利一区福利二区微拍刺激| 亚洲成av人影院在线观看| 欧美最猛性xxxxx亚洲精品| 欧美亚洲成人精品| 久久精品在线视频| 欧美激情影音先锋| 91久久精品美女高潮| 欧美视频免费在线| 成人观看高清在线观看免费| 日韩av不卡在线| 亚洲福利视频网| 亚洲一区二区三区成人在线视频精品| 亚洲综合第一页| 欧美激情高清视频| 久久精品国产v日韩v亚洲| 免费97视频在线精品国自产拍| 亚洲影院污污.| 亚洲一区二区自拍| 日韩欧美在线视频免费观看| 国产精品老牛影院在线观看| 伊人久久久久久久久久久久久| 亚洲精品动漫100p| 亚洲一区二区三区在线视频| 国产精品羞羞答答| 精品视频久久久久久久| 亚洲国产精彩中文乱码av在线播放| 97在线视频免费观看| 国产一区二区在线播放| 久久久久久国产精品久久| 国产情人节一区| 亚洲一区二区三区乱码aⅴ| 成人免费看黄网站| 国产精品6699| 亚洲成人在线视频播放| 欧美日韩成人在线观看| 在线视频精品一| 久久久久久久97| 亚洲欧美在线第一页| 精品香蕉在线观看视频一| 亚洲男人天堂2024| 久久精品99久久香蕉国产色戒| 国产精品丝袜久久久久久不卡| 中文欧美日本在线资源| 国产精品网址在线| 日本精品一区二区三区在线播放视频| 69av在线播放| 日本精品视频在线播放| 久久国产加勒比精品无码| 亚洲欧洲成视频免费观看| 日本亚洲精品在线观看| 国产精品天天狠天天看| 欧美性猛交xxxx富婆弯腰| 成人激情电影一区二区| 欧美寡妇偷汉性猛交| 亚洲2020天天堂在线观看| 国语自产精品视频在线看一大j8| 91精品久久久久久久久中文字幕| 精品国产欧美成人夜夜嗨| 成人激情电影一区二区| 色yeye香蕉凹凸一区二区av| 国产精品美女视频网站| 日韩大片在线观看视频| 少妇高潮久久久久久潘金莲| 国产精品96久久久久久| 精品综合久久久久久97| 综合欧美国产视频二区| 亚洲va久久久噜噜噜| 中文字幕一区日韩电影| 亚洲欧洲成视频免费观看| 亚洲片av在线| 色综合色综合久久综合频道88| 色婷婷综合久久久久中文字幕1| 精品久久久久久久久久ntr影视| 国语自产在线不卡| 欧美成人亚洲成人日韩成人| 日韩精品久久久久久久玫瑰园| 精品日韩中文字幕| 国产日韩欧美电影在线观看| 亚洲美女免费精品视频在线观看| 亚洲国产精品推荐| 爽爽爽爽爽爽爽成人免费观看| 中文欧美日本在线资源| 久久偷看各类女兵18女厕嘘嘘| 欧美电影免费观看网站| 欧美电影在线观看完整版| 欧美综合在线观看| 国产成人精品日本亚洲| 国产精品女视频| 久久中文精品视频| 精品人伦一区二区三区蜜桃网站| 最近2019免费中文字幕视频三| 日日狠狠久久偷偷四色综合免费| 日韩免费观看网站| 国产精品国内视频| 日韩av色综合| 国产日本欧美一区二区三区| 国内伊人久久久久久网站视频|