匿名函數(shù):沒(méi)有函數(shù)名稱(chēng)的函數(shù)??梢杂糜谫x值給變量,也可以作為函數(shù)或者方法的回調(diào)使用。匿名函數(shù)可以穿參。
閉包:PHP中閉包和匿名函數(shù)是一個(gè)概念,用于賦值給變量的一個(gè)匿名函數(shù),要給閉包傳參必須在匿名函數(shù)后加上use(),
括號(hào)內(nèi)可以添加變量,如果需要閉包內(nèi)外部的變量同步,需要在傳參變量前加上 & 符。
回調(diào)參數(shù):函數(shù)中使用方法callback(),函數(shù)外部用call_user_func()或call_user_func_array()等方法進(jìn)行回調(diào)并賦值給函數(shù)中的參數(shù),括號(hào)內(nèi)第一個(gè)參數(shù)應(yīng)為方法名'callback'。
匿名函數(shù)舉例:(最終網(wǎng)頁(yè)中會(huì)看到輸出:hello world)
<?php //匿名函數(shù)舉例 //將匿名函數(shù)用于賦值給變量 $func = function($param){ echo($param); }; //給變量中的匿名函數(shù)傳參 $func('hello world');
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
閉包舉例:
//閉包舉例 $name = 'world'; $sayHello = function() use($name){ echo("Hello $name"); };//這里不要忘記結(jié)束的;號(hào) //必須函數(shù)方式調(diào)用,即用(), 輸出Hello world $sayHello(); echo '<br>'; //嘗試在閉包外部更新閉包內(nèi)參數(shù)的值 $name = 'zj'; //輸出 Hello world,結(jié)果證實(shí)閉包外部不能更改內(nèi)部參數(shù)的值 $sayHello(); echo '<hr>'; //當(dāng)在use參數(shù)的變量前加上&,就可以在閉包外部訪問(wèn)和更改內(nèi)部參數(shù)的值 $name = 'world'; $sayHello = function() use(&$name){ echo("Hello $name"); };//這里不要忘記結(jié)束的;號(hào) //必須函數(shù)方式調(diào)用,即用(), 輸出Hello world $sayHello(); echo '<br>'; //嘗試在閉包外部更新閉包內(nèi)參數(shù)的值 $name = 'zj'; //輸出 Hello zj,結(jié)果證實(shí)閉包外部可以更改內(nèi)部參數(shù)的值 $sayHello();
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
回調(diào)參數(shù)舉例:
//函數(shù)回調(diào) function callback($a, $b) { echo "$a<=>$b.<br/>"; } $func = 'callback'; call_user_func($func, 1, 2); call_user_func_array($func, array(2, 1)); //結(jié)果返回 //1<=>2. //2<=>1.
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)