2011-01-10 23 views
18

sự khác biệt giữaPhp: sự khác biệt giữa thời gian ... trong khi đó; và trong khi {// thứ here}

while (expression): 

// do stuff 

endwhile; 

while { 

} 
+5

Cú pháp thay thế có thể gây khó khăn hơn cho việc chỉnh sửa vì nó không đủ khả năng đối sánh cú đúp trong IDE. – webbiedave

+0

Bạn có thể giải thích thêm một chút không? – redconservatory

+0

giải thích thêm: các trình soạn thảo văn bản lập trình thường sẽ làm nổi bật các dấu ngoặc cú pháp chuẩn '{...}' khi con trỏ của bạn vượt quá dấu ngoặc ôm để dễ dàng xác định các khối lệnh và luồng điều khiển. Cú pháp thay thế có thể bực tức nếu có nhiều cấu trúc điều khiển lồng nhau và thụt đầu dòng kém. – agtb

Trả lời

31

Không có sự khác biệt về chức năng.

Trong sử dụng thực tế tôi thấy rằng:

while (expression): 
// do stuff 
endwhile; 

là dễ đọc hơn cho các nhà thiết kế khi bạn đang nhúng mã php trong html. IE:

<? while ($cssClass = array_pop($array)): ?> 
    <li class="<?=$cssClass?>"> 
<? endwhile; ?> 

Trong đó:

while { 

} 

là dễ đọc hơn trong một khối mã php.

+0

Bạn thậm chí có thể thêm html thuần túy giữa các dấu ngoặc {} như 'trong khi {?> Html awsome của bạn

6

Không có sự khác biệt là gì, nó đi xuống đến sở thích cá nhân.

2

Không có sự khác biệt thực sự khi viết mã.

Có thể có sự khác biệt về mức độ thuận tiện trong các trường hợp rất đặc biệt. Ví dụ, giả sử bạn đang viết một công cụ mẫu để chuyển đổi mã mẫu thành mã PHP gốc, sau đó được lưu trữ và thực thi trực tiếp cho tốc độ.

Trong trường hợp này, thực tế là while ... endwhile; tránh sử dụng niềng răng có thể cho phép bạn đơn giản hóa thuật toán phân tích cú pháp của mình, ví dụ: nó nhận ra các biến được thay thế bằng cú pháp như {$var}, cũng sử dụng niềng răng.

Tất nhiên đây là một lợi ích khá nhỏ trong một tình huống thực sự phi thường, nhưng bạn lấy những gì bạn có thể. :)

2

Sự khác biệt là không đáng kể khi mã thực sự chạy, nhưng khi mã hóa tôi thấy rằng việc nhập dấu ngoặc là (1): nhanh hơn, (2): thông thường hơn và (3): cho phép ít cơ hội hơn lỗi (endwhle ai?). Là một phần thưởng, trình chỉnh sửa tôi sử dụng định dạng tự động trong khi các vòng lặp (với dấu ngoặc vuông, theo mặc định) và xuống đường, nếu có bất cứ điều gì bị tắt, chức năng phù hợp với khung được tích hợp sẽ bắt được nó.

Các vấn đề liên quan