2012-08-25 27 views
9

Hey có một cú pháp thay thế cho lệnh switch trong PHP, nhưng mã này không hoạt động:cú pháp thay thế cho công tắc

<div> 
<?php switch($variable): ?> 
<?php case 1: ?> 
<div> 
Newspage 
</div> 
<?php break;?> 
<?php case 2: ?> 
</div> 
Forum 
<div> 
<?php break;?> 
<?php endswitch;?> 
</div> 

Parse error: syntax error, unexpected T_INLINE_HTML, expecting T_ENDSWITCH or T_CASE or T_DEFAULT in /path/to/file on line #

Trả lời

19

Giải pháp cho vấn đề này được đưa switch($variable): với case 1: vào cùng một khối Mã PHP:

<div> 
<?php switch($variable): 
case 1: ?> 
<div> 
Newspage 
</div> 
<?php break;?> 
<?php case 2: ?> 
</div> 
Forum 
<div> 
<?php break;?> 
<?php endswitch;?> 
</div> 
+0

Đây là ví dụ tương tự từ nhận xét trong [tài liệu PHP] (http://www.php.net/manual/en/control-structures.alternative-syntax.php#80668) nhưng có thể giải thích được lý do tại sao điều này làm việc, nhưng mã trong câu hỏi không? Hay nó chỉ là một lỗi trong PHP? – Travesty3

+2

Nevermind. [Câu trả lời này] (http://stackoverflow.com/a/6096600/259457) cung cấp một số giải thích. Về cơ bản bạn đang chèn ngắt dòng, không được phép trực tiếp trong câu lệnh 'switch' (bên ngoài' trường hợp '. Trong câu lệnh' if' hoặc vòng lặp, không có vấn đề gì để ngắt dòng, nhưng 'switch' là khác nhau. – Travesty3

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