Php stdClass与匿名函数
我可以用匿名函数来实现这一点Php stdClass与匿名函数,php,stdclass,Php,Stdclass,我可以用匿名函数来实现这一点 $func = function() { return "Hello World"; }; var_dump($func()); 但是,我不能这样做 $namespace->func = function() { return "Hello World"; }; var_dump($namespace->func()); 我会得到这个错误 调用未定义的方法stdClass 到目前为止,我发现的解决方法是使用另一个变量
$func = function() {
return "Hello World";
};
var_dump($func());
但是,我不能这样做
$namespace->func = function() {
return "Hello World";
};
var_dump($namespace->func());
我会得到这个错误
调用未定义的方法stdClass
到目前为止,我发现的解决方法是使用另一个变量
$temp = $namespace->func;
var_dump($temp());
有什么方法可以一行完成吗?您可以使用:
这是因为即使存在作为闭包的属性
func
,PHP也不会检查它是否是闭包并调用它。一个简单的问题,不使用new StdClass()可以吗代码>?或者使用它是一种很好的做法?将您的错误报告
增加到E|u STRICT | E|u ALL
,您将看到该消息。根据我自己的经验,我可以说遵守严格的标准总是正确的。这样可以避免很多麻烦。您真的需要对象类型吗?如果这只是用于名称空间,那么数组可以处理相同的事情。我只是想发现所有的可能性。谢谢你的建议@Yoshi。这就是为什么我喜欢Stackoverflow,因为我不仅得到了答案,还得到了实用的建议。
// declare $namespace to be conform to strict standards
$namespace = new StdClass();
$namespace->func = function() {
return "Hello World";
};
var_dump($namespace->func->__invoke());