用PHP封闭

sca*_*iel 5 php closures

我试图在PHP中使用闭包有一个奇怪的问题.为变量赋值闭包时,我得到一个null值.但是当显示封闭时var_dump(),一切都很好.

这是一个总结问题的源代码:

$f = function() {};
var_dump($f); // 'null'

var_dump(function() {}); // 'object(Closure)[1]'
Run Code Online (Sandbox Code Playgroud)

我正在使用PHP 5.3.1.

编辑:我忘了提,我只有在通过Apache使用PHP时才会出现这个问题.使用PHP CLI时没有问题.

Nar*_*arf 0

这要么是一个非常罕见(并且已经修复)的错误,要么您没有显示与给您 NULL 的完全相同的用法。我的猜测是你正在用第一个来做这个var_dump()

var_dump($f());
Run Code Online (Sandbox Code Playgroud)

请注意括号,它们会导致函数运行,因此您会得到它的返回值。