首頁  >  文章  >  後端開發  >  php匿名函數的使用

php匿名函數的使用

王林
王林轉載
2020-01-23 18:26:433367瀏覽

php匿名函數的使用

匿名函數的提出

在匿名函數出現之前,所有的函數都需要先命名才能使用

php匿名函數的使用

#有的時候函數可能只需要使用一次,這時候使用匿名函數會讓程式碼更簡潔直觀,同時也避免了函數在其他地方被使用

php匿名函數的使用

(免費學習影片教學分享:php影片教學

#匿名函數的定義與使用

PHP 將會閉包和匿名函數視為同等概念(本文統稱為匿名函數),本質上都是偽裝成函數的物件。

匿名函數的本質是對象,因此跟對像一樣可將匿名函數賦值給某一變數

php匿名函數的使用

所有的匿名函數都是Closure 物件的實例

php匿名函數的使用

物件並沒有什麼父作用域可言,所以需要使用use 來手動宣告使用的變數

php匿名函數的使用

# #如果要讓匿名函數中的變數生效,需要使用引用傳值

php匿名函數的使用

從PHP 5.4 開始,在類別裡面使用匿名函數時,匿名函數的$this 將自動綁定到目前類別

php匿名函數的使用

如果不想讓自動綁定生效,可使用靜態匿名函數

php匿名函數的使用

匿名函數的本質

匿名函數的本質是Closure 對象,包括了以下五個方法

php匿名函數的使用##__construct - 防止匿名函數被實例化

php匿名函數的使用Closure::bindTo - 複製目前匿名函數對象,綁定指定的$this 物件和類別作用域。通俗的說,就是手動將匿名函數與指定物件綁定,利用這一點,可以為擴充物件的功能。

php匿名函數的使用Closure::bind - bindTo 方法的靜態版本,有兩種用法:

#用法一:實作與bindTo 方法相同的效果

php匿名函數的使用用法二:將匿名函數與類別(而不是物件)綁定,記得要將第二個參數設為null

php匿名函數的使用#call - PHP 7 新增的call 方法可以實現綁定並呼叫匿名函數,除了語法更加簡潔外,效能也更高

php匿名函數的使用fromCallable - 將給定的callable 函數轉換成匿名函數

php匿名函數的使用fromCallable 等價於

php匿名函數的使用這裡有一點需要特別注意的是,無論是fromCallable 轉換成的閉包,或是使用反射得到的閉包,在使用bindTo 時,如果第二個參數指定綁定類,會報錯

相關文章教學推薦:php教學

以上是php匿名函數的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除