title: PHP - Class Property Issue
body: <p>Well, I was completely re-coding my advanced IRC bot to allow all methods and properties to be available in $this, without the need for long chains like $this->Configuration->someProperty, etc. My code is split over several files, each containing its own class. For this to be possible, I was using __set and __get to provide access to these properties of other classes.</p>
  
  <p>While doing this, I hit some trouble with one of my array's. Upon further experimenting in a blank PHP file, I've determined it must be either a PHP bug or unexpected behaviour. Note, I haven't traced the problem to __get or __set, it seems to simply be a problem with extends.</p>
  
  <pre><code>&lt;?php
  new test();
  
  class test
  {
      public $oInstance;
      public $aSettings = array
      (
          'Bot' =&gt; array(),
          'Server' =&gt; array(),
          'Logs' =&gt; array(),
          'Extensions' =&gt; array(),
          'Other' =&gt; array('Time' =&gt; '')
      );
  
      public function __construct()
      {
          $this-&gt;setit();
          //$this-&gt;aSettings['Other']['Time'] = time();
          $this-&gt;oInstance = new test2();
      }
  
      public function setit()
      {
          $this-&gt;aSettings['Other'] = time();
      }
  
      public function __call($sFunction, $aArgs)
      {
          if(method_exists($sValue, $sFunction))
          {
              return call_user_func_array(array($sValue, $sFunction), $aArgs);
          }
      }
  
      public function __get($sName)
      {
          if(property_exists('test2', $sName))
          {
              return $this-&gt;instance-&gt;$sName;
          }
      }
  
      public function __set($sName, $mValue)
      {
          if(property_exists('test2', $sName))
          {
              $this-&gt;instance-&gt;$sName = $mValue;
              break;
          }
      }
  }
  
  class test2 extends test
  {
      public function __construct()
      {
          var_dump($this-&gt;aSettings);
      }
  }
  ?&gt;
  </code></pre>
  
  <p>I stripped the $aSettings array from my actual bot code, the rest is experimental code. Anyway, everything in the code is basically the same.</p>
  
  <p>As the code shows, test2 extends the test class. This means it should inherit all the public properties of test. It does inherit it fine.. the problem starts when I assign a value to $aSettings. The changes seem to take no effect at all. When $aSettings['Other']['Time'] is var_dump'd it still shows it's original set value of ''/nothing, but the setit() method should have set the value to time(). Here's the really weird thing: var_dump'ing $aSettings['Other']['Time'] in the setit() method shows that it has been set to time(), but any time it is var_dump'd in test2, it shows the original set value.</p>
  
  <p>I really don't know what is causing this.. but I need a fix if I'm gonna continue on with my bot. I've tested this on the latest PHP version (5.3.8) on Mac, Windows and Linux, all yielding the same result.</p>