PHP什么类型的对象是匿名函数?

时间:2017-06-14 08:11:40

标签: php closures anonymous-function

我知道匿名函数是对象,但它们是什么类型的对象? E.g

function test() {
    return function() {
        return "Hello World!";
    };
}

$test = test();
print gettype($test())

结果

object

我试图看看它是否是Closure的一个实例,但它不是。

if($test() instanceof \Closure) {
    print "Hello World!";
}

那么它继承了什么对象?如何在PHP中找到它?

1 个答案:

答案 0 :(得分:3)

这种功能的确属于“封闭”类型:

<?php
var_dump(function() {
    return "Hello World!";
});

输出结果为:

object(Closure)#1 (0) {
}

类型比较也提供了预期的结果:

var_dump(function() {
    return "Hello World!";
} instanceof \Closure);

这将导致:

bool(true)