Có cách nào để dừng một số array_walk
từ bên trong chức năng ẩn danh không?Break array_walk từ hàm ẩn danh
Dưới đây là một số mã mẫu (hoạt động) để hiển thị ý của tôi, kiểm tra xem một mảng có chỉ giá trị số không.
$valid = true;
array_walk($parent, function ($value) use (&$valid) {
if (!is_numeric($value)) {
$valid = false;
}
});
return $valid ? 'Valid' : 'Invalid';
Nếu tôi có một mảng đủ lớn và mục nhập đầu tiên không hợp lệ, phần còn lại của các kiểm tra (dự phòng) vẫn được thực hiện, vì vậy tôi muốn ngừng thực hiện.
Sử dụng break
/continue
không hoạt động (lỗi: Fatal error: Cannot break/continue 1 level in ...
).
Lưu ý: Tôi không muốn viết lại mã, tôi chỉ muốn biết NẾU điều này là có thể.
Bạn * có thể * ném, sau đó bắt, một Ngoại lệ. Tất nhiên, đó là cách tiếp cận sai, nhưng có thể. –
Không thể trực tiếp, nhưng chính xác bạn vẽ đường để viết lại mã ở đâu? (Giải pháp 'Exception' có vẻ như nó hoạt động, nhưng tôi sẽ sớm sử dụng một' foreach' đơn giản hơn là làm điều đó). – Jon
@Jon: Vâng, tôi đã tò mò nếu có thể cho các chức năng như thế này. Tôi không muốn sử dụng 'for' /' foreach', đó là nó (chủ yếu là một câu hỏi lý thuyết :)). Anthony, bạn nên đăng nó như một câu trả lời. –