Làm thế nào để ngăn chặn một vòng lặp trong các quy tắc?


7

Tôi đang sử dụng mô-đun Quy tắc có điều kiện, có một số điều kiện bên trong vòng lặp tôi cần thoát ra. Tuy nhiên, không có hành động nào trong các quy tắc dừng / chấm dứt vòng lặp.

Tôi đã thử một quy tắc tùy chỉnh nơi tôi đã thử sau đây nhưng nó không hoạt động:

function my_module_break_rules_loop() {
  return FALSE;
}
function my_module_break_rules_loop() {
  return 0;
}
function my_module_break_rules_loop() {
  break;
}

Việc ngắt hoạt động nhưng hiển thị với thông báo lỗi này:

Lỗi nghiêm trọng của PHP: Không thể phá vỡ / tiếp tục 1 cấp độ trong

Bất cứ ai biết làm thế nào để dừng / chấm dứt vòng lặp?


1
Tìm thấy giải pháp nào cho việc này?
Dev

hãy xem tại đây, (có thể trùng lặp) stackoverflow.com/questions/11988281/
Kẻ

Có lẽ bạn có thể thay đổi nó một thời gian thay thế?
Jamie Hollern

Câu trả lời:


2

Cài đặt Quy tắc có điều kiện để bạn có thể thêm "điều kiện" giữa "hành động quy tắc". Sau đó, bạn có thể tạo một biến lặp và sử dụng biến đó để dừng sau các phần tử thứ ba.


bạn có thể bao gồm một quy tắc mẫu (ở định dạng xuất) thể hiện câu trả lời của bạn không?
Pierre.Vriens

0

Bạn nên lọc mảng trước khi xử lý nó trước foreach. Bạn có thể làm điều này bằng cách thực hiện một thành phần quy tắc có hai tham số:

  1. Danh sách mới (được lọc).
  2. Các mặt hàng bạn đang xem xét.

Đặt thành phần này trong một vòng lặp foreach. Đó có thể sẽ là một thành phần khác.

Nếu tham số đáp ứng tiêu chí của bạn, sau đó nối nó vào danh sách. Nếu không, không làm gì cả. Kết quả là sau đó bạn có danh sách đã lọc.

Bây giờ bạn có thể làm foreach của bạn.

Một khả năng khác là đặt một thành phần quy tắc trong vòng lặp của bạn chỉ chạy nếu một số được truyền trong hàm hoạt động. Về cơ bản, một vòng lặp while.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.