未捕获的错误:调用未定义的方法stdClass:: -在对象中定义函数



我创建了一个与PHP内联的对象,作为SQL表的模型,当我试图将函数设置为对象值时,我得到了这个错误。我简化了代码以显示错误:

PHP

$test = (object) [
'autoValue'=>function($name) {
return $name.' in table.';
}
];
echo $test->autoValue('Rick');

我一直收到错误:

致命错误:Uncaught error: Call to undefined methodstdClass: autoValue ()

我需要运行一个存储在autoValue中的函数

我该怎么做?

您应该使用( ):

$test->autoValue周围创建一个组
echo ($test->autoValue)('Rick'); // Rick in table.

完整示例:

$test = (object) [
'autoValue'=>function($name) {
return $name.' in table.';
}
];
echo ($test->autoValue)('Rick'); // Rick in table.
或者使用变量
$callback = $test->autoValue;
echo $callback('Rick'); // Rick in table.

最新更新