這篇文章給大家分享的是有關(guān)PHP中回調(diào)函數(shù)及匿名函數(shù)的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
嘉善網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),嘉善網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為嘉善1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個(gè)售后服務(wù)好的嘉善做網(wǎng)站的公司定做!本文實(shí)例講述了PHP回調(diào)函數(shù)及匿名函數(shù)概念與用法。分享給大家供大家參考,具體如下:
1、回調(diào)函數(shù)
PHP的回調(diào)函數(shù)其實(shí)和C、Java等語言的回調(diào)函數(shù)的作用是一模一樣的,都是在主線程執(zhí)行的過程中,突然跳去執(zhí)行設(shè)置的回調(diào)函數(shù);
回調(diào)函數(shù)執(zhí)行完畢之后,再回到主線程處理接下來的流程
而在php調(diào)用回調(diào)函數(shù),不想c以及java那樣直接使用函數(shù)名作為函數(shù)參數(shù),而是在php中使用函數(shù)對應(yīng)的字符串名稱執(zhí)行
1.1、無參數(shù)回調(diào)
<?php //無參數(shù)回調(diào) function callback(){ echo 'execute no parameters callback.<br/>'; } function main($callback){ echo 'execute main start.<br/>'; $callback(); echo 'execute main end.<br/>'; } main('callback'); //結(jié)果 ecute main start. execute no parameters callback. execute main end.
1.2、全局回調(diào)函數(shù)
<?php //全局函數(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(1,2)); //結(jié)果 1<====>2. 1<====>2.
1.3、類方法及靜態(tài)方法回調(diào)
<?php class Test{ //成員函數(shù) function callback($a,$b){ echo "callback $a<====>$b.<br/>"; } public static function staticCallback($a,$b){ echo "staticCallback $a<====>$b.<br/>"; } } //非靜態(tài)方法調(diào)用方式一 $test = new Test(); call_user_func(array($test, 'callback'), 1,2); call_user_func_array(array($test, 'callback'), array(1,2)); //非靜態(tài)方法調(diào)用方式二 $func = 'callback'; $test->$func(7,9); //靜態(tài)方法調(diào)用方式 call_user_func(array('Test', 'staticCallback'), 4,6); call_user_func_array(array('Test', 'staticCallback'), array(4,6)); call_user_func_array("Test::staticCallback", array(4,6)); //結(jié)果 callback 1<====>2. callback 1<====>2. callback 7<====>9. staticCallback 4<====>6. staticCallback 4<====>6. staticCallback 4<====>6.
2、匿名函數(shù)
2.1、 php中的匿名函數(shù)(Anonymous functions), 也叫閉包函數(shù)(closures), 允許指定一個(gè)沒有名稱的函數(shù)。最常用的就是回調(diào)函數(shù)的參數(shù)值
<?php $closureFunc = function($str){ echo $str.'<br/>'; }; $closureFunc("hello world!"); //結(jié)果 hello world!
2.2、閉包
2.2.1、傳入?yún)?shù),引用局部變量
<?php $closureFunc = function($name){ $sex = '男'; $func = function($age)use ($name,$sex){ echo "$name--$sex--$age<br/>"; }; $func(23); }; $func = $closureFunc("lvfk"); //結(jié)果 lvfk--男--23
2.2.2、返回閉包函數(shù)
<?php $closureFunc = function($name){ echo 'closureFunc '; $sex = '男'; echo "$name+++$sex<br/>"; $func = function()use ($name,$sex){ echo "$name--$sex<br/>"; }; return $func; }; $func = $closureFunc("lvfk"); $func(); $func(); //結(jié)果 closureFunc lvfk+++男 lvfk--男 lvfk--男
2.2.3、閉包改變上下文的值,需要引用傳遞
<?php $closureFunc = function($name){ $age = 1; echo "$name+++$age<br/>"; $func = function()use ($name,&$age){ $age++; echo "$name--$age<br/>"; }; return $func; }; $func = $closureFunc("lvfk"); $func(); $func(); $func(); //結(jié)果 lvfk+++1 lvfk--2 lvfk--3 lvfk--4
感謝各位的閱讀!關(guān)于“PHP中回調(diào)函數(shù)及匿名函數(shù)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
新聞標(biāo)題:PHP中回調(diào)函數(shù)及匿名函數(shù)的示例分析-創(chuàng)新互聯(lián)
文章分享:http://muchs.cn/article2/dseoic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、企業(yè)網(wǎng)站制作、App設(shè)計(jì)、微信小程序、域名注冊、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容