【发布时间】:2015-09-28 15:28:03
【问题描述】:
返回真;没有结束当前的函数循环! 这是非常基本的,但我不明白为什么 break 不起作用!
我试试这段代码:
function findKey($array, $keySearch) {
foreach ($array as $key => $item){
echo "$key == $keySearch";
if ("$key" == "$keySearch"){
echo 'yes, it exists';
return true;
}
else
{
if (is_array($item))
findKey($item, $keySearch);
}
}
return false;
}
return true; 永远不会中断,因为它在yes, it exists 被回显后让它离开!
已解决
来自已接受解决方案here 的代码本身是错误的。它已得到纠正。此外,您将在下面找到正确答案。
【问题讨论】:
-
return将立即结束函数的执行并返回您要返回的任何内容。 -
这是我用来查看的,但是在这种情况下它不起作用!
-
break 语句永远不会执行。找到返回语句后执行返回。
-
它打破了当前的foreach,但仍然在else语句中重新发送函数!!
-
递归怪异......你没有对 findKey() 的递归调用的返回值做任何事情......
if (is_array($item)) return findKey($item, $keySearch);也许?