我刚开始玩弄的Symfony 2.0,并立即遇到了一个错误:为什么我的匿名函数在Symfony 2.0中评估为NULL?
[28-Nov-2011 16:51:26] PHP Fatal error: Uncaught exception 'InvalidArgumentException' with message 'A callable is expected in AnnotationRegistry::registerLoader().'
进一步挖掘,我发现一个匿名函数获取传递到registerLoader
功能。
$callable = function($class) use ($loader)
{
$loader->loadClass($class);
return class_exists($class, false);
};
AnnotationRegistry::registerLoader($callable);
看起来不错,对吗?为了安全起见,我投入了一张支票:
var_dump(gettype($callable));
哪个返回NULL,显然是不可调用的。我刚刚升级到PHP 5.3.2,并根据phpversion()
这是正在使用的版本。
我在Symfony环境之外运行了一次性脚本,并且一切正常。
$foo = function()
{
echo 'foo';
};
var_dump(gettype($foo));
//string(6) "object"
任何人有任何想法,为什么我看到的Symfony的环境中周围的匿名函数不同的行为?
您是否认为这可能与命名空间有关?我知道他们只是因为我开始使用sf2,并且在第一次看时我遇到了很多奇怪的事情,可以在第二次看行为中解释。 – greg0ire
好问题 - 我将进一步调查命名空间并查看我能找到的内容。 –