黄p网站_在线看中文字幕_亚洲电影免费观看_成人激情视频_欧美成视频_中国av在线

回調(diào)函數(shù)

回調(diào)函數(shù)就是在主進(jìn)程執(zhí)行當(dāng)中,突然跳轉(zhuǎn)到預(yù)先設(shè)置好的函數(shù)中去執(zhí)行的函數(shù).

以下是自知乎作者常溪玲的解說(shuō):
你到一個(gè)商店買東西,剛好你要的東西沒有貨,于是你在店員那里留下了你的電話,過了幾天店里有貨了,店員就打了你的電話,然后你接到電話后就到店里去取了貨。在這個(gè)例子里,你的電話號(hào)碼就叫回調(diào)函數(shù),你把電話留給店員就叫登記回調(diào)函數(shù),店里后來(lái)有貨了叫做觸發(fā)了回調(diào)關(guān)聯(lián)的事件,店員給你打電話叫做調(diào)用回調(diào)函數(shù),你到店里去取貨叫做響應(yīng)回調(diào)事件。

以下是一個(gè)非常簡(jiǎn)單的回調(diào)函數(shù)的例子:

<?php
//登記回調(diào)函數(shù)
function insert(int $i):bool {
    echo "插入數(shù)據(jù){$i}\n";//模擬數(shù)據(jù)庫(kù)插入//響應(yīng)回調(diào)事件
    return true;
}
$arr = range(0,1000);//模擬生成1001條數(shù)據(jù)
function action(array $arr, callable $function)
{
    foreach ($arr as $value) {
        if ($value % 10 == 0) {//當(dāng)滿足條件時(shí),去執(zhí)行回調(diào)函數(shù)處理//觸發(fā)回調(diào)
            call_user_func($function, $value);//調(diào)用回調(diào)事件
        }
    }
}
action($arr,'insert');

在這個(gè)例子中,首先定義了一個(gè)插入數(shù)據(jù)的函數(shù),定義了一個(gè)1001條數(shù)據(jù)的數(shù)組 然后調(diào)用了action函數(shù),當(dāng)遍歷數(shù)組滿足條件時(shí),則執(zhí)行設(shè)定好的回調(diào)函數(shù)進(jìn)行插入數(shù)據(jù)

回調(diào)函數(shù)的幾種寫法

函數(shù)字符串:

<?php
function insert(int $i):bool {
    echo "插入數(shù)據(jù){$i}\n";//模擬數(shù)據(jù)庫(kù)插入
    return true;
}
$arr = range(0,1000);//模擬生成1001條數(shù)據(jù)
function action(array $arr, callable $function)
{
    foreach ($arr as $value) {
        if ($value % 10 == 0) {//當(dāng)滿足條件時(shí),去執(zhí)行回調(diào)函數(shù)處理
            call_user_func($function, $value);
        }
    }
}
action($arr,'insert');

匿名函數(shù)

<?php
$arr = range(0,1000);//模擬生成1001條數(shù)據(jù)
function action(array $arr, callable $function)
{
    foreach ($arr as $value) {
        if ($value % 10 == 0) {//當(dāng)滿足條件時(shí),去執(zhí)行回調(diào)函數(shù)處理
            call_user_func($function, $value);
        }
    }
}
action($arr,function($i){
    echo "插入數(shù)據(jù){$i}\n";//模擬數(shù)據(jù)庫(kù)插入
    return true;
});

類靜態(tài)方法

<?php
$arr = range(0, 1000);//模擬生成1001條數(shù)據(jù)
function action(array $arr, callable $function)
{
    foreach ($arr as $value) {
        if ($value % 10 == 0) {//當(dāng)滿足條件時(shí),去執(zhí)行回調(diào)函數(shù)處理
            call_user_func($function, $value);
        }
    }
}
class A{
    static function insert(int $i):bool {
        echo "插入數(shù)據(jù){$i}\n";//模擬數(shù)據(jù)庫(kù)插入
        return true;
    }
}
action($arr,'A::insert');
action($arr,array('A','insert'));

類方法

<?php
$arr = range(0, 1000);//模擬生成1001條數(shù)據(jù)
function action(array $arr, callable $function)
{
    foreach ($arr as $value) {
        if ($value % 10 == 0) {//當(dāng)滿足條件時(shí),去執(zhí)行回調(diào)函數(shù)處理
            call_user_func($function, $value);
        }
    }
}
class A{
    public function insert(int $i):bool {
        echo "插入數(shù)據(jù){$i}\n";//模擬數(shù)據(jù)庫(kù)插入
        return true;
    }
}
$a = new A();
action($arr,array($a,'insert'));
主站蜘蛛池模板: 日韩三区 | 国产精品二区三区 | 久久久大 | 精品亚洲一区二区三区 | 欧美中文在线 | 伊人网页 | aaa久久| 国产精品国产精品国产专区不片 | 国产视频黄在线观看 | 亚洲欧美一区二区三区在线 | 超碰人人操 | 在线观看中文 | 国产精品久久久久久久一区探花 | 中文字幕精品一区 | 亚洲精品乱码久久久久膏 | 91视频18 | 国产一区二区精品在线观看 | 伊人干综合 | 99热这里有精品 | 一级久久久久 | 欧美激情国产日韩精品一区18 | 老牛嫩草一区二区三区眼镜 | 婷婷网址 | 亚洲高清在线观看 | 国产日韩欧美精品一区二区三区 | 99爱爱视频| 亚洲欧洲精品成人久久奇米网 | 狠狠操综合网 | 91精品综合久久久久久五月天 | www.啪啪 | 国产精品国产 | 欧美午夜电影 | 午夜在线免费观看 | 国产精品视频一区二区三区四蜜臂 | 欧美在线a | 国产亚洲视频在线 | a成人| 国产成人午夜高潮毛片 | 欧美成在线视频 | 久久全国免费视频 | 欧美日韩一区二区三 |