Qui ci sono due versioni di una riga in un file php:Perché incollare una riga infrange il codice se la scrittura della stessa riga a mano funziona correttamente?
Prima versione:
if ($projet['sourceDonnees'] === (string)$CONSTANTS['sourceDonnees_saisie']) {
Seconda versione:
if ($projet['sourceDonnees'] === (string)$CONSTANTS['sourceDonnees_saisie']) {
Anche se sembrano identici, la prima versione risultati in un PHP Parse error: syntax error, unexpected T_STRING
, mentre la seconda versione funziona bene. La differenza tra i due è che la prima versione è stata incollata e modificata mentre la seconda versione è stata scritta a mano interamente. Cosa sta succedendo qui?
Note: la riga è stata copiata da un file di testo codificato in UTF-8 e incollato in un altro file di testo UTF-8. Tutte le operazioni eseguite all'interno di gedit, entrambi i file scritti da me in gedit.
Se il tuo editor ha la possibilità di mostrare i simboli, prova ad accenderlo e vedi se Tit aiuta a far luce. – Jrod
Uso BBEdit che consente di attivare l'opzione per visualizzare i caratteri invisibili. Di solito il codice che trovo online e viene copiato da un browser è totalmente corrotto da una junk invisibile.È meglio ri-digitare il codice che trovi online se il tuo editor non è abbastanza avanzato da mostrarti i personaggi vaganti. Nel tuo codice, BBEdit mi mostra un personaggio invisibile proprio tra ']' e '=== ', come questo'] • === '. Riscrivilo con uno spazio. – Sparky
@Sparky Come si scrive solitamente quel personaggio? Forse l'ho digitato per errore nella stringa originale ... – Shawn