首页 > 解决方案 > 未捕获的错误:调用未定义的方法 stdClass:: - 在对象中定义函数

问题描述

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

PHP

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

echo $test->autoValue('Rick');

我不断收到错误:

致命错误:未捕获的错误:调用未定义的方法 stdClass::autoValue() in

我需要运行存储在对象中的autoValue中的函数,并且我无法使用类设置对象。

我怎样才能做到这一点?

标签: php

解决方案


您应该围绕$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.

推荐阅读