php函數總結(閉包函數,匿名函數)
阿新 • • 發佈:2018-04-06
edi AI tar () 擴展 echo view 閉包 one
php函數總結
1.普通函數
2.變量函數
function myfun($a) { echo $a; } $b = "myfun"; $b("test");
3.匿名函數(可以實現閉包)
匿名函數(Anonymous functions),也叫閉包函數(Closures),允許臨時創建一個沒有指定名稱的函數,經常用作回調函數(callback)的參數,當然也有其他應用情況
$func = function() { };//要帶分號 $func() //調用 var_dump($func); //返回對象類型 object(Closure)#1 (0) { }
4.閉包函數:將匿名函數在普通函數中當做參數出入,也可以被返回,就實現了一個簡單的閉包.
通俗的說,子函數可以使用父函數中的局部變量,這種行為就叫做閉包.
閉包的特點:
1.作為一個函數變量的一個引用,當函數返回時,其處於激活狀態.
2.一個閉包就是當一個函數返回時,一個沒有釋放資源的棧區
--其實上面兩點可以合成一點,就是閉包函數返回時,該函數內部變量處於激活狀態,函數所在棧區依然保留.
function myfunc() { $a=10; $b=11; $one = function($str)use(&$a,$b){//use引用外層變量 不加&傳副本不影響父函數值 echo $a=$a+2; echo ‘<br/>‘; echo $b=$b+2; echo ‘<br/>‘; echo $str; }; echo $a; echo ‘---<br/>‘; echo $b; echo ‘---<br/>‘; return $one; } $a = myfunc(); $a(‘你好‘);
父函數中把匿名函數作為返回值返回,閉包的一種..
5.內部函數
擴展知識php:USE關鍵詞的用法
1.命名空間
2.閉包函數上下文
3.Trait代碼復用時 引用.... (參考http://php.net/manual/zh/language.oop5.traits.php)
上一篇文章:http://www.cnblogs.com/fps2tao/p/8727248.html
php函數總結(閉包函數,匿名函數)