Cấp, tôi không phải là lập trình viên PHP và tôi không biết triển khai chính xác GOTO của PHP sẽ như thế nào, nhưng đây là sự hiểu biết của tôi về GOTO:
GOTO chỉ là một tuyên bố kiểm soát luồng rõ ràng hơn như bất kỳ tuyên bố nào khác. Giả sử bạn có một số vòng lặp lồng nhau và bạn chỉ cần tìm một thứ. Bạn có thể đặt trong một câu lệnh có điều kiện (hoặc một số) và khi các điều kiện được đáp ứng đúng, bạn có thể sử dụng câu lệnh GOTO để thoát khỏi tất cả các vòng lặp (thay vì có câu lệnh 'break' ở mỗi cấp làm việc với câu lệnh điều kiện . cho mỗi và vâng, tôi tin rằng việc thực hiện truyền thống là phải có nhãn tên rằng tuyên bố GOTO có thể nhảy đến theo tên Bạn có thể làm một cái gì đó như thế này:.
for(...) {
for (...) {
for (...) {
// some code
if (x) GOTO outside;
}
}
}
:outside
Đây là một đơn giản hơn (và hiệu quả hơn) thực hiện mà không có báo cáo GOTO. Tương đương sẽ là:
for(...) {
for (...) {
for (...) {
// some code
if (x) break;
}
if(x) break;
}
if(x) break;
}
Trong trường hợp thứ hai (thông thường là thực tế) có thre e báo cáo có điều kiện, mà rõ ràng là chậm hơn so với chỉ có một. Vì vậy, vì lý do tối ưu hóa/đơn giản hóa, bạn có thể muốn sử dụng các câu lệnh GOTO trong các vòng lặp lồng nhau chặt chẽ.
Và trên thực tế nó là trong PHP5. Và những gì nó làm là, "chỉ đơn giản goto". –