有沒有辦法在匿名函數中停止array_walk
?從匿名函數break_ array_walk
下面是一些示例代碼(工程)來顯示我的意思,即檢查數組是否只有數字值。
$valid = true;
array_walk($parent, function ($value) use (&$valid) {
if (!is_numeric($value)) {
$valid = false;
}
});
return $valid ? 'Valid' : 'Invalid';
如果我有一個足夠大的數組,第一項是無效的,(冗餘),其餘檢查仍在進行,所以我想停止執行。
使用break
/continue
不起作用(錯誤:Fatal error: Cannot break/continue 1 level in ...
)。
注:我不希望重寫代碼,我只是想知道IF這是可能的。
你*可以*拋出,然後捕獲一個異常。當然,這是錯誤的方法,但這是可能的。 –
不可能直接進行,但是您是在哪裏畫出了重寫代碼的行? ('Exception'解決方案聽起來像是可行的,但我會盡早使用一個普通的'foreach')。 – Jon
@Jon:好的,我很好奇這樣的功能是否可行。我不想用'for' /'foreach',就是這樣(主要是理論上的問題:))。安東尼,你應該把它作爲答案。 –