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();