2013-11-28 39 views
-2

請看看我的代碼,我幾乎停留在這一點,爲什麼不打破array_walk裏面休息......爲什麼「破」不array_walk PHP工作

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

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

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

     return $bool; 
} 
+1

因爲你在休息之前回來了。 –

+0

你已經寫回報。返回後它將不會執行。不需要休息。 –

+0

它應該是什麼「打破」? – deceze

回答

0

你到底想幹什麼?你的break不起作用,因爲你正在返回一個值 - 所以break的行永遠不會被執行。

如果您嘗試從陣列中刪除所有空值,請嘗試array_filter($array)

+0

其實我正在寫一個處理php中的$ _POST數組的公共邏輯。如果數組中有空值,則中斷。你有其他的邏輯嗎? –

3

這不是完全清楚你想要做什麼,但break是出入口僅真正的循環forforeachwhiledo-while)和開關結構控制結構。

array_walk是迭代的,但不是真正意義上的循環。

您不能從數組漫遊回調中「破解」(使用術語)它在數組的每個元素上被調用,作爲更新或以其他方式修改每個元素的手段,並且我無法想象一個用例,在這個用例中你希望在它期間終止它。

+0

其實我正在寫一個處理php中的$ _POST數組的公共邏輯。如果數組中有空值,則中斷。你有其他的邏輯嗎? –

+0

你是什麼意思「中斷」 - 停止執行腳本並向用戶報告錯誤? – Utkanos

+1

退出循環..! –