title: call grandparent method without calling parent and without modifying parent/grandparent
body: <p>I found myself in this situation and I just hacked it dirtily. But I wonder, is there some clean way?</p>
  
  <pre><code>class base{
      var $value;
      public function getValue(){
          return 'returned from base: '. $value;
      }
  }
  
  class object extends base{
      public function getValue(){
          $this-&gt;value = 'wrong value';
          return parent::getValue();
      }
  }
  
  
  class overwrite extends object{
      public function getValue(){
          $this-&gt;value = 'right value';
  
          ?????
  
      }
  }
  
  $o = new overwrite;
  echo $o-&gt;getValue();
  </code></pre>
  
  <p>All I'm allowed to edit is <code>overwrite</code>. If I call <code>parent::getValue()</code>, the value gets overwritten by wrong value. If I name the class, like <code>base::getValue()</code>, the base class would not have <code>$value</code> property set.</p>