首页 > 解决方案 > 如何以正确的方式PHP制作回调函数

问题描述

我有一堂课

 class MyClass {

     public function functionOne(User $user) {
        $user->startProcess(function ($data) {
           $this->makeUpdate($data);
        });
     }

     protected function makeUpdate($data)
     {
        //... do something  
     }
 }



 $myClass = new MyClass();
 $myClass->functionOne($user);

当我运行这段代码时,我有一个错误

BadMethodCallException方法 App\MyClass::makeUpdate 不存在。

我该如何解决?

标签: phpphp-7

解决方案


它适用于以下代码

$data = $user->startProcess();
$this->makeUpdate($data);

代替

$user->startProcess(function ($data) {
    $this->makeUpdate($data);
});

推荐阅读