在递归循环函数php中返回一个值

时间:2014-08-08 21:44:23

标签: php recursion

我正在上课,我有这个功能。我不知道错误在哪里,但函数根本没有“返回”任何东西,但是如果我改变“echo”的“返回”它会显示正确的结果,并且逻辑似乎正在工作,所以我有点困惑。谢谢你。

    public function myFunction(array $haystack, $needle)
{   

    foreach($haystack as $key => $value )
    {            
        if (is_array($value))
        {  
             $this->myFunction($value, $needle);
        }
        else
        {  
            if($key == $needle) 
            { 
                return $value; 
                break;
            }
        }   
    }

1 个答案:

答案 0 :(得分:0)

在递归函数调用之前,你错过了return

return $this->myFunction($value, $needle);

这是通过调用堆栈返回结果所必需的。