【发布时间】:2017-02-04 19:23:54
【问题描述】:
这让我很困惑,如果我只用一个函数来分配变量,它怎么可能是一个可调用对象。
如果我执行这个 sn-p:
$a = function () {};
if (is_object($a)) {
echo "is Object\n";
}
if (is_callable($a)) {
echo "is callable\n";
}
它输出:
is Object
is callable
【问题讨论】:
-
正是因为你给它分配了一个函数;函数是可调用的,而可调用的分配给变量的机制是
Closure类型的对象,因此它也是一个对象 -
那么函数是PHP中的对象吗?哦...我明白了
-
不,匿名函数,或者closures,是对象;像 strlen() 这样的函数不是闭包,也不是对象
标签: php oop closures anonymous-function