title: Exotic names for methods, constants, variables and fields - Bug or Feature?
body: <p>after some confusion in the comments to</p>
  
  <ul>
  <li><a href="https://stackoverflow.com/questions/3416551/is-it-safe-to-have-1-letter-class-names-in-php-e-g-a-b-c">Is it safe to have 1 letter class names in PHP, e.g A, B, C</a></li>
  </ul>
  
  <p>I thought I make into a question. According to the PHP manual, a valid class name should match against <code>[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*</code>. But apparently, this is not enforced, nor does it apply for anything else:</p>
  
  <pre><code>define('π', pi());
  var_dump(π);
  
  class ␀ {
      private $␀ = TRUE;
      public function ␀()
      {
          return $this-&gt;␀;
      }
  }
  
  $␀ = new ␀;
  var_dump($␀ );
  var_dump($␀-&gt;␀());
  </code></pre>
  
  <p>works fine (even though my IDE cannot show ␀). Can some erudite person clear this up for me? Can we use any Unicode? And if so, since when? Not that I would actually <em>want</em> to use anything but <code>A-Za-z_</code> but I'm curious.</p>
  
  <p><strong>Clarification:</strong> I am not after a Regex to validate class names, nor do I know if PHP internally uses the Regex it suggests in the manual. The thing that confused me (and apparently the other guys in the linked question) is why things like <code>$☂ = 1</code> can be used in PHP at all. PHP6 was suppposed to be the Unicode release but PHP6 is in hiatus. But if there is no Unicode support, why can I do this then?</p>