Recentemente ho incontrato l'errore di sintassi istruzione switch descritto http://php.net/manual/en/control-structures.alternative-syntax.phpPerché uscita in una dichiarazione interruttore alternativo-sintassi causare un errore di sintassi
mio IDE (PhpStorm) rilevato l'errore, ma non ha fornito alcun contesto utile per correzione. Il codice ha sicuramente prodotto un errore irreversibile includendo il file come modello.
avvertimento del pagina del manuale:
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 ?>
La pagina di manuale non offre alcuna spiegazione. Alcuni utenti comments on the page non spiegano nulla neanche; semplicemente ribadiscono che lo spazio bianco non è permesso.
Perché si tratta di un errore di sintassi?
Almeno a parer mio, una domanda come questa mi sembra "perché è' == 'usato per il confronto", la risposta è solo "perché la sintassi è definita in questo modo" ... –
Immagino che sia vero , ma la ragione per l'operatore di confronto è che la lingua ne ha bisogno. Qual è la ragione di questa qualità della sintassi? –
La risposta breve è perché si tratta di un errore di sintassi. Ma la lunghezza della stringa è troppo lunga e la precondizione è la teoria degli automi. – ern