2010-11-25 56 views
11

Tôi đã nhìn thấy mã này và tôi không biết ý nghĩa của nó.Trong khi (true) {có nghĩa là gì trong PHP?

while(true){ 
    echo "Hello world"; 
} 

Tôi biết vòng lặp while là gì, nhưng trong khi (đúng) nghĩa là gì? Nó sẽ được thực hiện bao nhiêu lần. Đây không phải là một vòng lặp vô hạn?

+0

Vâng, đó là một vòng lặp vô hạn. – Coquevas

Trả lời

9

Có, đây là vòng lặp vô hạn.

Phiên bản rõ ràng sẽ là

while (true == true) 
+8

Ngoại trừ các giá trị rất nhỏ của 'true'. –

+0

Đúng, đúng sẽ luôn luôn đúng và không thay đổi trạng thái để vòng lặp của bạn sẽ không bao giờ kết thúc. – Scoop

+2

@Ignacio bạn có nghĩa là đã ký và chưa ký 'đúng'. Những người đang đến trong PHP 7, tôi nói với –

2

Nó thực sự là một vòng lặp vô hạn.

14

Mặc dù là một vòng lặp vô hạn, bạn có thể thoát khỏi nó bằng cách sử dụng break. Nó rất hữu ích khi chờ đợi một cái gì đó xảy ra nhưng bạn không biết chính xác số lần lặp lại sẽ đưa bạn đến đó.

4

Điều này thực sự (như đã nêu) một vòng lặp vô hạn và thường chứa mã tự kết thúc bằng cách sử dụng câu lệnh 'ngắt'/'thoát'.

Rất nhiều trình tiện ích sử dụng cách này để có quy trình PHP tiếp tục hoạt động cho đến khi một số tình huống bên ngoài thay đổi. (Tức là giết chết nó bằng cách loại bỏ một tập tin .pid/gửi một HUP etc etc)

1

referes Hãy để các tài liệu PHP hiện tại: http://www.w3schools.com/php/php_looping.asp

Vòng lặp while thực thi một khối mã chừng nào quy định điều kiện là đúng.

while (expression) { 
    statement(s) 
} 

Các tuyên bố trong khi đánh giá biểu hiện, mà phải trả lại một giá trị boolean. Nếu biểu thức được đánh giá là true, thì câu lệnh sẽ thực thi (các) câu lệnh trong khối trong khi. Câu lệnh trong khi câu lệnh tiếp tục kiểm tra biểu thức và thực thi khối cho đến khi biểu thức đánh giá sai.

Do đó, mã:

while (true) { 
    statement(s) 
} 

sẽ thực hiện những điều khoản vô thời hạn vì "true" là một biểu thức boolean rằng, như bạn có thể mong đợi, luôn luôn là sự thật.

Như đã đề cập bởi @ elzo-valugi, vòng lặp này có thể bị gián đoạn sử dụng một break (hoặc exit):

while (true) { 
    statement(s) 
    if (condition) { 
     break; 
    } 
} 
+0

Ops ... đã được sửa. Cảm ơn –