jiliangliang

php 回调函数 php7
函数字符串:// 模拟插入数据库的响应function insert(int $i): bool { ec...
扫描右侧二维码阅读全文
20
2019/08

php 回调函数 php7

函数字符串:

// 模拟插入数据库的响应

function insert(int $i): bool
{
    echo "插入数据库的第{$i}条数据".PHP_EOL;
    return true;
}

$arr = range(0, 1000);

// 模拟生成1001条数据
function action(array $arr, callable $action)
{
    for ($i = 0;$i<sizeof($arr);$i++){
        // 当满足条件触发
        
        if($i%10==0){
            call_user_func($action, $arr[$i]);//调用回调事件
        }
    }
}

action($arr, "insert");

函数声明方式

$insert2 = function (int $i): bool {
    echo "插入数据库的第{$i}条数据" . PHP_EOL;
    return true;
};
$arr = range(0, 1000);
function action2(array $arr, callable $action)
{
    for ($i = 0; $i < sizeof($arr); $i ++) {
        // 当满足条件触发
        
        if ($i % 10 == 0) {
            $action($arr[$i]);
        }
    }
}

action2($arr,$insert2);

匿名函数

$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;
});

类静态方法

$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'));



QQ截图20190820151034.png

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

Last modification:August 20th, 2019 at 03:21 pm
如果觉得我的文章对你有用,请随意赞赏

One comment

  1. Qing

    哦豁

Leave a Comment