为什么'break'在array_walk php中不起作用

时间:2013-11-28 09:59:49

标签: php loops break

请看我的代码,我几乎陷入了这个,为什么array_walk内部的突破不会破坏......

$bool=array_walk($_POST, 'check_empty');

function check_empty($item, $key)
{               
        $bool=(isset($item) && $item != "") ? 1: 0 ;

         if(!$bool)
         {
         //return 0;
         break;
         }

        return $bool;
}

2 个答案:

答案 0 :(得分:3)

根本不清楚您尝试做什么,但break是仅退出真实循环的控制结构forforeachwhiledo-while)和切换结构。

array_walk是迭代的,但不是真正意义上的循环。

你不能打破' (使用术语)来自数组walk回调;它被调用在数组的每个元素上,作为更新或修改每个元素的一种方法,我无法想象一个用例,你想要在它期间终止它。

答案 1 :(得分:0)

你想做什么?您的break无效,因为您在它之前返回了一个值 - 因此永远不会执行break行。

如果您尝试从阵列中删除所有空值,请尝试array_filter($array)