2010-09-07 14 views
120

Có phải elseifelse if hoàn toàn đồng nghĩa hoặc có sự khác biệt không?Có phải "elseif" và "else if" hoàn toàn đồng nghĩa không?

Zend có "tiêu chuẩn" được chấp nhận để sử dụng không?

Trong khi cá nhân tôi không thích nhìn thấy elseif trong mã, tôi chỉ cần biết chúng có đồng nghĩa và hướng dẫn sử dụng PHP không phải là dễ tìm kiếm nhất.

+10

Không phải mọi ngôn ngữ khác đều sử dụng 'else if', nhân tiện. Ví dụ, VB cũng sử dụng 'ElseIf' và Ruby sử dụng' elsif'. –

+6

và shell/bash sử dụng elif – knittl

+7

python cũng sử dụng elif – gregghz

Trả lời

156

Từ PHP manual:

Trong PHP, bạn cũng có thể viết 'else if' (trong hai từ) và hành vi sẽ trùng với một trong những 'elseif' (trong một từ duy nhất). Ý nghĩa cú pháp hơi khác (nếu bạn quen thuộc với C, đây là hành vi tương tự) nhưng dòng dưới cùng là cả hai sẽ dẫn đến chính xác cùng một hành vi.

Về cơ bản, họ sẽ cư xử như nhau, nhưng else if là kỹ thuật tương đương với một cấu trúc lồng nhau như vậy:

if (first_condition) 
{ 

} 
else 
{ 
    if (second_condition) 
    { 

    } 
} 

Tài liệu hướng dẫn cũng lưu ý:

Lưu ý rằng elseif và else if sẽ chỉ được xem xét giống hệt nhau khi sử dụng dấu ngoặc nhọn như trong ví dụ trên. Khi sử dụng dấu hai chấm để xác định các điều kiện if/elseif của bạn, bạn không được tách biệt nếu thành hai từ, hoặc PHP sẽ thất bại với một lỗi phân tích cú pháp.

Có nghĩa là theo hình thức cấu trúc điều khiển bình thường (tức là sử dụng niềng răng.):

if (first_condition) 
{ 

} 
elseif (second_condition) 
{ 

} 

hoặc elseif hoặc else if có thể được sử dụng. Tuy nhiên, nếu bạn sử dụng alternate syntax, bạn phải sử dụng elseif:

if (first_condition): 
    // ... 
elseif (second_condition): 
    // ... 
endif; 
+8

Công việc tốt với các đoạn mã ví dụ. Nếu bất cứ điều gì, cú pháp thay thế là tất cả những gì cần thiết để chứng minh rằng PHP chỉ xử lý 'else if' như' else {if {'. – BoltClock

+0

+1 cho "else nếu về mặt kỹ thuật tương đương với cấu trúc lồng nhau" –

+1

PHP không xử lý 'else if' như' else {if {', nếu không bạn sẽ không thể thực hiện' if (0) {} nếu khác (0) {} else {} '... –

36

Khung Interoperability Group (FIG) được tạo thành từ các thành viên bao gồm các nhà phát triển của Zend (https://github.com/php-fig/fig-standards#voting-members), đặt cùng một loạt các khuyến nghị tiêu chuẩn (PSR- #).

Zend2 và Symfony2 đã theo dõi PSR-0.

Không có quy tắc cứng và nhanh cho phong cách, nhưng bạn có thể thử và theo dõi càng nhiều PSR-2 càng tốt.

Có một bình luận trên else if vs elseif trong PSR-2:

Từ khóa elseif NÊN được sử dụng thay else if để tất cả từ khóa kiểm soát trông giống như những từ đơn lẻ.

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#51-if-elseif-else

Một số khuyến nghị là chỉ vậy, khuyến nghị. Tùy thuộc vào bạn có nên sử dụng khác nếu hoặc elseif

+4

Cảm ơn bạn rất nhiều vì đã chỉ ra hướng dẫn từ khóa như một từ. –

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