Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are PHP keywords case-sensitive?

For example, is the following program meaningful, and if so what should it print?

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

My interpreter runs it and prints barqux, implying the keywords are not 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) 

However, this same question was asked last year, and the answers say that keywords are case-sensitive, in direct contradiction to what my PHP interpreter appears to tell me!

like image 964
jameshfisher Avatar asked Dec 17 '13 01:12

jameshfisher


2 Answers

Case sensitive (both user defined and PHP defined)

  • variables
  • constants
  • array keys
  • class properties
  • class constants

Case insensitive (both user defined and PHP defined)

  • functions
  • class constructors
  • class methods
  • keywords and constructs (if, else, null, foreach, echo etc.)
like image 80
Ignacio Ocampo Avatar answered Oct 18 '22 11:10

Ignacio Ocampo


No. Keywords are case-insensitive. Lerdorf et al., Programming PHP, page 17:

The names of user-defined classes and functions, as well as built-in constructs and keywords such as echo, while, class, etc., are case-insensitive. Thus, these three lines are equivalent:

echo("hello, world");
ECHO("hello, world");
EcHo("hello, world");
like image 8
2 revs, 2 users 95% Avatar answered Oct 18 '22 12:10

2 revs, 2 users 95%