PHP返回Call to undefined method stdClass::fragmentr()
以获取以下代码:
$core = new \StdClass;
$core->fragmentr = function($frag) {
$path = sprintf("fragments/%s.php", $frag);
if(is_file($path)) {
include $path;
} else {
header("Location: ./?p=500");
exit;
}
}
/* SNIP */
$core->fragmentr('header');
但是,函数$ core-> fragmentr明确定义为分配给变量的匿名函数。有什么想法吗?
答案 0 :(得分:1)
这是因为您的stdClass没有名为fragmentr
的方法,但它有一个名为fragmentr
的属性,因此您可以执行以下操作:
$property = $core->fragmentr;
$property("header");
您无法直接调用Closure,因此您必须将其分配给变量,然后才能调用它