微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP递归函数得到错误异常

如何解决PHP递归函数得到错误异常

我想做一个递归函数,该函数调用自身, 我有 public function test(Request $request){} 在那个函数内部我调用了自己

public function test(Request $request){
  //data
  $data // this variable is have the same format as $request,but with fewer data
  if (count($data>0){
    test($data);
  }
}

但它返回

Argument 1 passed to App\\Http\\Controllers\\Api\\Controller::test() must be an instance of Illuminate\\Http\\Request,array given,called in C:\\xampp\\htdocs\\FIX\\test\\app\\Http\\Controllers\\Api\\Controller.PHP on line 891",

解决方法

您可以将新数据与旧请求合并,然后递归地将请求再次传递给函数。

public function test(Request $request){

  if (count($data>0){
    $request->merge($data);
    test($request);
  }
}

通过这样做,您的新数据将被传递给函数。

,

我建议这样

public function test(Request $request,array $data = []){
  if (!empty($data) {
    $this->test($request,$data);
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。