title: PHP & Case Sensitivity
body: <p>In PHP, variable and constant names are case sensitive, while function names are not.</p>
  
  <p>As far as I am aware, PHP is the only language in which this happens. All other languages I have used are either totally case sensitive or totally case insensitive.</p>
  
  <p>Why is PHP <em>partially</em> case senstive?</p>
  
  <p>Please note, that I am not asking <em>which</em> names are case sensitive, but <em>why</em>.</p>
  
  <p><strong>Update</strong></p>
  
  <p>I thought I might add, for the benefit of those who think I am asking <em>which</em>, the following list:</p>
  
  <p><strong>Case Sensitive</strong></p>
  
  <ul>
  <li>Strings</li>
  <li>Variables</li>
  <li>Object Properties</li>
  <li>Constants, by default</li>
  </ul>
  
  <p><strong>Case Insensitive</strong></p>
  
  <ul>
  <li>Key Words etc</li>
  <li>Functions</li>
  <li>Object Methods</li>
  <li>Constants, if defined accordingly</li>
  <li>Class Names</li>
  </ul>
  
  <p>Note:</p>
  
  <ul>
  <li>Classes are thus a mixed bag:
  
  <ul>
  <li>The <code>class</code> keyword is case insensitive</li>
  <li>Class names are case insensitive, for declaration, instantiation, and static calls</li>
  <li>Class methods, being functions, are case insensitive</li>
  <li>Class properties, being variables &amp; constants, are case sensitive</li>
  </ul></li>
  <li>Because Strings are case sensitive, anything that relies on strings, such as array keys and values, is also case sensitive</li>
  </ul>