午夜免费_欧美一级免费看_欧美日韩一区二区视频在线观看_午夜视频在线_日本特黄a级高清免费大片_成年人黄色小视频

回调函数

回调函数就是在主进程执行当中,突然跳转到预先设置好的函数中去执行的函数.

以下是自知乎作者常溪玲的解说:
你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。

以下是一个非常简单的回调函数的例子:

<?php
//登记回调函数
function insert(int $i):bool {
    echo "插入数据{$i}\n";//模拟数据库插入//响应回调事件
    return true;
}
$arr = range(0,1000);//模拟生成1001条数据
function action(array $arr, callable $function)
{
    foreach ($arr as $value) {
        if ($value % 10 == 0) {//当满足条件时,去执行回调函数处理//触发回调
            call_user_func($function, $value);//调用回调事件
        }
    }
}
action($arr,'insert');

在这个例子中,首先定义了一个插入数据的函数,定义了一个1001条数据的数组 然后调用了action函数,当遍历数组满足条件时,则执行设定好的回调函数进行插入数据

回调函数的几种写法

函数字符串:

<?php
function insert(int $i):bool {
    echo "插入数据{$i}\n";//模拟数据库插入
    return true;
}
$arr = range(0,1000);//模拟生成1001条数据
function action(array $arr, callable $function)
{
    foreach ($arr as $value) {
        if ($value % 10 == 0) {//当满足条件时,去执行回调函数处理
            call_user_func($function, $value);
        }
    }
}
action($arr,'insert');

匿名函数

<?php
$arr = range(0,1000);//模拟生成1001条数据
function action(array $arr, callable $function)
{
    foreach ($arr as $value) {
        if ($value % 10 == 0) {//当满足条件时,去执行回调函数处理
            call_user_func($function, $value);
        }
    }
}
action($arr,function($i){
    echo "插入数据{$i}\n";//模拟数据库插入
    return true;
});

类静态方法

<?php
$arr = range(0, 1000);//模拟生成1001条数据
function action(array $arr, callable $function)
{
    foreach ($arr as $value) {
        if ($value % 10 == 0) {//当满足条件时,去执行回调函数处理
            call_user_func($function, $value);
        }
    }
}
class A{
    static function insert(int $i):bool {
        echo "插入数据{$i}\n";//模拟数据库插入
        return true;
    }
}
action($arr,'A::insert');
action($arr,array('A','insert'));

类方法

<?php
$arr = range(0, 1000);//模拟生成1001条数据
function action(array $arr, callable $function)
{
    foreach ($arr as $value) {
        if ($value % 10 == 0) {//当满足条件时,去执行回调函数处理
            call_user_func($function, $value);
        }
    }
}
class A{
    public function insert(int $i):bool {
        echo "插入数据{$i}\n";//模拟数据库插入
        return true;
    }
}
$a = new A();
action($arr,array($a,'insert'));
主站蜘蛛池模板: 日韩精品一区二区三区四区 | 综合久久中文字幕 | 91av手机在线观看 | 亚洲精品视频在线看 | 成年免费视频 | 91高清视频 | 一区视频在线 | 免费成人在线播放 | 国产深夜福利在线观看 | 久中文字幕 | 免费成人午夜视频 | 91观看在线视频 | 一区二区成人在线 | 亚洲国产激情 | 99国产精品久久久久久久床豆 | 国产成+人+综合+亚洲 欧美 | 成人a区| 久一视频在线 | 91高清观看 | 亚洲国产aⅴ精品一区二区 麻豆91精品91久久久 | 国产成人精品亚洲男人的天堂 | 99国产精品久久久久久久久久 | 91精品少妇偷拍99 | 91蝌蚪国产 | 亚洲毛片 | 免费观看福利视频 | 91视频高清免费 | 国产精品乱码久久久久久久 | 国产成人免费 | 国产成人一区 | 久久久久国产一区二区三区 | 亚洲在线观看视频 | 不卡视频一区二区 | 97操碰| 91正在播放 | 九色视频在线播放 | 亚洲天堂资源在线 | 91视频免费污 | 国产精品日韩在线观看一区二区 | 国产一区二区三区免费观看 | 午夜时刻免费实验区观看 |