2013-12-17 16 views
6

Ad esempio, il seguente programma è significativo e, in caso affermativo, cosa deve stampare?Le parole chiave di PHP sono case sensitive?

<?php 
FuncTIon fOo($x) { eChO $x; } 
FOO('bar'); 
IF (TRuE) { echO 'qux'; } 
?> 

mio interprete lo gestisce e stampe barqux, implicando le parole chiave non sono case-sensitive:

$ php case_sensitive_keywords.php 
barqux 
$ php --version 
PHP 5.5.7-1+sury.org~precise+1 (cli) (built: Dec 12 2013 21:37:40) 

Tuttavia, this same question was asked last year, e le risposte dicono che le parole chiave sono maiuscole e minuscole, in diretta contraddizione con ciò che il mio interprete PHP sembra dirmi!

+0

@JohnConde Questa è davvero un duplicato? Quella domanda riguardava le funzioni, questa domanda riguarda le parole chiave. E la risposta qui sotto va oltre, descrivendo tutti gli elementi del linguaggio. – Barmar

+0

Penso che la domanda sia stata chiusa semplicemente perché si trattava di una domanda sciocca (puoi facilmente rispondere tu stesso sperimentando, come hai fatto tu), e "non costruttivo" era la ragione più vicina disponibile. Non è che PHP abbia una specifica ufficiale separata dall'implementazione; c'è solo un'implementazione e il linguaggio è ciò che fa l'implementazione. – Barmar

+0

@jameshfisher [Meta] è il luogo in cui discutere di domande e chiusure specifiche. Ho modificato i tuoi commenti dalla tua domanda. Ti suggerisco inoltre di astenermi dall'includere le parolacce nei tuoi commenti e domande, in quanto potrebbero essere cancellati. –

risposta

15

Case sensitive (sia definito dall'utente e PHP definita) variabili

  • costanti
  • chiavi dell'array
  • proprietà della classe
  • classe Costanti

Case insensitive (sia definito dall'utente e definito PHP)

  • funzioni
  • costruttori della classe
  • metodi di classe
  • parole chiave ei costrutti (se, altrimenti, null, foreach, eco ecc)
+0

Questo è fantastico! Grazie per il chiarimento ... – manou

2

No. chiave sono case-insensitive .Lerdorf et al., Programming PHP, pagina 17:

I nomi di classi e funzioni definite dall'utente, così come built-in costrutti e parole chiave come echo, while, class, ecc, sono case-insensitive . Così, queste tre linee sono equivalenti:

echo("hello, world"); 
ECHO("hello, world"); 
EcHo("hello, world"); 
+0

Si applica anche ai namespace? Voglio dire, sono spazi dei nomi come 'Nspace \ SubNamespace \ SubSubNamespace' e 'nspace \ subnamespace \ subsubNamespace' e 'NSpace \ SuBNameSpacE \ SUBsuBNamesPACE' equivalenti? – tonix

Problemi correlati