Tôi có cần phải sử dụng lệnh dừng ở đây hoặc nó sẽ dừng vòng lặp và chỉ trả lại một lần?PHP - Nghỉ sau khi trở về?
for($i = 0; $i < 5; $i ++) {
if($var[$i] === '') return false;
// break;
}
Cảm ơn bạn!
Tôi có cần phải sử dụng lệnh dừng ở đây hoặc nó sẽ dừng vòng lặp và chỉ trả lại một lần?PHP - Nghỉ sau khi trở về?
for($i = 0; $i < 5; $i ++) {
if($var[$i] === '') return false;
// break;
}
Cảm ơn bạn!
Nó sẽ chạy một lần, dừng vòng lặp và thoát khỏi hàm/phương thức.
Có thể lập luận rằng đây là kiểu xấu. Nó rất dễ dàng để bỏ qua rằng return
sau đó, đó là xấu để gỡ lỗi và bảo trì.
Sử dụng break
có thể sạch hơn:
for($i = 0; $i < 5; $i ++) {
if($var[$i] === '')
{ set_some_condition;
break;
}
}
if (some_condition)
return;
Nếu bạn sử dụng return
, chức năng của bạn (hoặc toàn bộ kịch bản) sẽ trở lại - tất cả các mã sau đó sẽ không được thực thi. Vì vậy, để trả lời câu hỏi của bạn: break
không bắt buộc ở đây. Tuy nhiên, nếu break
không được nhận xét ở đây, vòng lặp sẽ dừng sau một lần lặp. Đó là vì câu lệnh if của bạn không sử dụng niềng răng ({ ... }
) nên nó chỉ bao gồm câu lệnh return
(nói cách khác: break
trong ví dụ của bạn luôn được thực hiện).
Cập nhật:
PHP 7 đòi hỏi một return
. Không cần sử dụng break;
vì vòng lặp kết thúc vào return
.
A break;
thường được sử dụng trong công tắc hoặc vòng lặp bất cứ khi nào bạn tìm thấy mặt hàng cần thiết.
Ví dụ:
$items = ['a' , 'b' , 'c'];
foreach($items as $item)
{
if($item == 'a')
{
return true; // the foreach will stop once 'a' is found and returns true.
}
return false; // if 'a' is not found, the foreach will return false.
}
'return' hoạt động. Ví dụ đơn giản: '$ items = ['a', 'b', 'c']; foreach ($ items là $ item) { echo $ item; nếu ($ item == 'a') trả về true; } ' – EGurelli
Cảm ơn @EGurelli. Tôi đã thêm và chỉnh sửa ví dụ của bạn. –