PHP 闭包函数的理解2

  • Post author:
  • Post published:8月 14, 2019
  • Post category:PHP
  • Post comments:0评论

callback 、Closure 两个参数类型提示的区别

callback 可以接受匿名函数(也叫闭包函数)和普通函数

Closure 只能接受匿名函数,所以 b('c'); 会报错

<?php
function a(callable $a)
{
    var_dump($a); //  打印变量
    var_dump($a()); // 打印执行函数返回的值
}

function b(Closure $a)
{
    var_dump($a); //  打印变量
    var_dump($a()); // 打印执行闭包返回的值
}

function c()
{
    return 10;
}

function run ()
{
    a(function () {
        return 10;
    });
    a('c');
    b(function () {
        return 10;
    });
    b('c');
}

run();

发表评论