title: About PHP Magic Methods __get and __set on inheritance
body: <p><strong>OBS:</strong> I coded directly here, beacause my code is much more complex.</p>
  
  <p>If I code:</p>
  
  <pre><code>class SuperFoo {
      public function __get($name) {
          return $this-&gt;$name;
      }
      public function __set($name, $value) {
          $this-&gt;$name = $value;
      }
  }
  
  class Foo extends SuperFoo {
      private $bar = '';
  }
  
  $foo = new Foo();
  $foo-&gt;bar = "Why it doesn't work?";
  var_dump($foo);
  </code></pre>
  
  <p>Results in:</p>
  
  <pre><code>object(Foo) {
      ["bar":"Foo":private]=&gt; 
          string(0) ''
  }
  </code></pre>
  
  <p>And not in:</p>
  
  <pre><code>object(Foo) {
      ["bar":"Foo":private]=&gt; 
          string(20) 'Why it doesn't work?'
  }
  </code></pre>
  
  <p>Why this happen? I don't want to use an array to hold the attributes, because I need them declared as individual private members.</p>