溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP 匿名函數(shù)(一)

發(fā)布時間:2020-08-02 08:18:27 來源:網(wǎng)絡(luò) 閱讀:1365 作者:a2292464251 欄目:web開發(fā)

  php的匿名函數(shù)是繼php5.3之后新增添的功能,在越來越多的框架支持高版本的php之后,都有使用到此功能,手冊上的解釋比較生澀難懂,那么我們撇開手冊不談,以代碼切入,希望讓大家能更好的理解。


 一、變量函數(shù)

    聊匿名函數(shù)之前,我們有必要說說變量函數(shù)

     1 、首先,我們定義一個普通的函數(shù)

    function test($a,$b){
       return $a+$b;
    }
    $test = test(1,2);
    echo $test;   //res = 3

     2、將其改變?yōu)樽兞亢瘮?shù)

    function test($a,$b){
		return $a+$b;
	}
	$test  = 'test';
	echo  $test(1,2); //res  = 3

    變量函數(shù)就是把函數(shù)名賦值給一個變量,然后使用 $test() 或者有參數(shù)時$test(1,2) 如此這般來使用。


 二、匿名函數(shù)

    1、匿名函數(shù)定義    

      匿名函數(shù),顧名思義就是沒有函數(shù)名的函數(shù)。

       我們把上面例子中的函數(shù)名稱去掉就是匿名函數(shù)了,如下: 

        function (){
           
        };  //這段代碼就是沒有函數(shù)名稱的匿名函數(shù)的主體部分了,切記【末尾需要加上分好】
       
        $test = function(){
           return '1111111111111';
        }; 
        
        $test  = function($a,$b){
            return $a + $b;
        };  // 這段代碼就是一個標(biāo)準(zhǔn)的匿名函數(shù)了,有函數(shù)主體,有返回值,這里的返回值不是return,而是返回給了變量$test。

        至于為什么末尾要加分號,你可以這樣理解:   

        一個普通變量的賦值 $name = 'zhangsan';  變量賦值是需要在末尾加分號的。

       這里是匿名函數(shù),同樣也是變量的賦值,所以加上分號也好理解了。

     

    2、匿名函數(shù)使用

           $test = function(){
               return '1111111111111';
           }; 
           echo $test(); //和變量函數(shù)一樣
        
           $test  = function($a,$b){
              return $a + $b;
           };
           echo $test(1,2); //同理,傳入?yún)?shù)


 三、疑問(匿名函數(shù)的意義)

      看到這里,大家難免有疑問,這個變量函數(shù)我們用的都比較少,這個匿名函數(shù)視乎并沒有普通函數(shù)來的實現(xiàn),那這個匿名函數(shù)存在的意義是什么呢?

      匿名函數(shù)在設(shè)計時,并不是為了跟隨模仿js而來的,php 的匿名函數(shù)主要的目的是為了這兩個功能【閉包函數(shù)】、【回調(diào)函數(shù)】。

      關(guān)于閉包和回調(diào)我們下篇文章再和大家聊聊。




   


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI