Gần đây tôi đã gặp phải những lỗi cú pháp câu lệnh switch được mô tả tại http://php.net/manual/en/control-structures.alternative-syntax.phpTại sao đầu ra trong một câu lệnh switch thay thế-cú pháp gây ra một lỗi cú pháp
My IDE (phpstorm) phát hiện ra lỗi, nhưng nó không cung cấp bất kỳ bối cảnh hữu ích để sửa chữa. Mã chắc chắn đã tạo ra lỗi nghiêm trọng khi bao gồm tệp dưới dạng mẫu.
cảnh báo Tài liệu hướng dẫn của trang:
Warning Any output (including whitespace) between a switch statement and the first case will result in a syntax error. For example, this is invalid:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>
Whereas this is valid, as the trailing newline after the switch statement is considered part of the closing ?> and hence nothing is output between the switch and case:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>
Các trang hướng dẫn cung cấp không có lời giải thích. Một số người dùng comments on the page cũng không giải thích bất kỳ điều gì; họ chỉ đơn giản là restate rằng khoảng trắng không được phép.
Tại sao đây là lỗi cú pháp?
Ít nhất theo ý kiến của tôi, một câu hỏi như thế này nghe như "tại sao' == 'dùng để so sánh", câu trả lời chỉ là "vì cú pháp được định nghĩa theo cách đó" ... –
Tôi đoán đó là sự thật , nhưng lý do cho toán tử so sánh là ngôn ngữ cần một ngôn ngữ. Lý do cho chất lượng cú pháp này là gì? –
Câu trả lời ngắn là vì nó là lỗi cú pháp .. Nhưng anwser dài sẽ là quá dài và điều kiện tiên quyết là lý thuyết Automata .. – ern