1. 程式人生 > >php函數總結(閉包函數,匿名函數)

php函數總結(閉包函數,匿名函數)

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函數總結(閉包函數,匿名函數)