2012-07-02 33 views
8

Mã sau có chấp nhận được không? Dường như nó hoạt động, nhưng nó có hoạt động liên tục với tất cả các phiên bản của PHP không?PHP Nếu/Khác tuyên bố không có dấu ngoặc đơn

if ($x > $y) 
    echo 'x is greater'; 
elseif ($x == $y) 
    echo 'equal'; 
else 
    echo 'y is greater'; 

Cảm ơn.

+0

này luôn luôn làm việc bất kể phiên bản của php bạn đang sử dụng. ['read'] (http://php.net/manual/en/control-structures.elseif.php) – diEcho

Trả lời

7

Điều đó có thể chấp nhận được trên phiên bản và sẽ hoạt động miễn là bạn chỉ muốn thực hiện một điều trong mỗi khối điều khiển. Việc sử dụng dấu ngoặc đơn giúp bạn dễ dàng theo dõi vị trí các khối bắt đầu và kết thúc, cũng như việc kiểm chứng trong tương lai khi bạn cần thêm một câu lệnh nữa.

This post có tóm tắt tốt về các tùy chọn khác nhau cho if/else chặn trong PHP.

0

Mã luôn được chấp nhận. Nó sẽ làm việc liên tục trong tất cả các phiên bản của PHP.

0

Có, nhưng nó phải là một câu duy nhất. Id bạn cần sử dụng nhiều hàng hơn, bạn sẽ cần dấu ngoặc đơn.

2

mã của bạn được chấp nhận và sẽ hoạt động tốt trong tất cả các phiên bản của php và IMHO: không chỉ tất cả các ngôn ngữ khác đều hỗ trợ cho cùng một quy tắc. nhưng đối với dễ đọctránh bất kỳ lỗi, trong trường hợp bạn có thể cần thêm nhiều câu lệnh sau, đó là khuyến cáo sử dụng statments khối

3

Điều đó hoạt động tốt và đó là cách thông thường để thực hiện nhanh nếu có nhiều ngôn ngữ. Như đã nói trước đây - nếu bạn sử dụng nhiều hơn một dòng mã, bạn cần phải đặt nó trong một khối với khung.

Ví dụ ở đây:

if (x == 1) 
echo "x is one"; 
echo "one is x"; 

Kết quả sẽ là "x là một" sẽ được lặp lại nếu x == 1 trong khi "một là x" sẽ được lặp lại mỗi lần - không có vấn đề nếu x = = 1 hay không.

Để nhận cả hai dòng mã chỉ thực thi khi điều kiện là đúng, bạn cần phải đính kèm nó trong một khối.

if (x == 1) 
{ 
echo "x is one"; 
echo "one is x"; 
} 
Các vấn đề liên quan