【问题标题】:Return in recursive function PHP laravel在递归函数 PHP laravel 中返​​回
【发布时间】:2018-02-21 08:30:59
【问题描述】:

我正在使用 laravel 和 php,我正在做一个递归函数,问题是函数的 return 值不起作用echo

代码是this。

public function getSitioPadre($id){
    $padre =  md_sitio_espacios::where([['SITIO_ESPACIOS_ID','=',$id]])->get()->toArray();       
    if($padre[0]["PADRE"] == 0){
        return $padre[0]["SITIO_ESPACIOS_ID"];
    }else{
        $this->getSitioPadre($padre[0]["PADRE"]);
    }
}

当我像这样调用这个函数时:

echo $this->getSitioPadre(54);

什么都不返回,

如果我在函数中使用:echo $padre[0]["SITIO_ESPACIOS_ID"]而不是return,它可以工作。

请告诉我该怎么做,谢谢。

【问题讨论】:

  • 看来你需要return $this->getSitioPadre($padre[0]["PADRE"]);
  • @AlonEitan 你说得对,这就是错误,我不想考虑一下,谢谢

标签: php laravel return echo


【解决方案1】:

您似乎没有在 else 子句中返回任何内容。

public function getSitioPadre($id){
    $padre =  md_sitio_espacios::where([['SITIO_ESPACIOS_ID','=',$id]])->get()->toArray();       
    if($padre[0]["PADRE"] == 0){
        return $padre[0]["SITIO_ESPACIOS_ID"];
    }else{
        return $this->getSitioPadre($padre[0]["PADRE"]); // should work better
    }
}

【讨论】:

    猜你喜欢
    • 2013-09-21
    • 2011-05-23
    • 2012-03-11
    • 1970-01-01
    • 2015-04-27
    • 2020-09-05
    • 2018-01-04
    • 2021-03-02
    • 2021-08-14
    相关资源
    最近更新 更多