php 閉包案例解析
發(fā)表時間:2023-07-27 來源:明輝站整理相關軟件相關文章人氣:
[摘要]匿名函數(shù)(Anonymous functions),也叫閉包函數(shù)(closures),允許 臨時創(chuàng)建一個沒有指定名稱的函數(shù)。最經常用作回調函數(shù)(callback)參數(shù)的值。當然,也有其它應用的情況。...
匿名函數(shù)(Anonymous functions),也叫閉包函數(shù)(closures),允許 臨時創(chuàng)建一個沒有指定名稱的函數(shù)。最經常用作
回調函數(shù)(callback)參數(shù)的值。當然,也有其它應用的情況。
匿名函數(shù)目前是通過 Closure 類來實現(xiàn)的。
閉包函數(shù)也可以作為變量的值來使用。PHP 會自動把此種表達式轉換成內置類 Closure 的對象實例。把一個 closure 對象賦值給一個變量的方式與普通變量賦值的語法是一樣的,最后也要加上分號:
閉包可以從父作用域中繼承變量。 任何此類變量都應該用 use 語言結構傳遞進去。 PHP 7.1 起,不能傳入此類變量: superglobals、 $this 或者和參數(shù)重名。
具體形式如下:
$a = function($arg1, $arg2) use ($variable) {
// 聲明函數(shù)閉包到變量$a, 參數(shù)為$arg1, $arg2 ,該閉包需使用$variable變量
}
具體用法實例如下:
<?php
$result = 0;
$one = function()
{ var_dump($result); };
$two = function() use ($result)
{ var_dump($result); }; // 可以認為 $two這個變量 本身記錄了該函數(shù)的聲明以及use使用的變量的值
$three = function() use (&$result)
{ var_dump($result); };
$result++;
$one(); // outputs NULL: $result is not in scope
$two(); // outputs int(0): $result was copied
$three(); // outputs int(1)
?>
以上就是php 閉包實例解析的詳細內容,更多請關注php中文網其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。