title: How to call grandparent method without getting E_STRICT error?
body: <p>Sometimes I need to execute grandparent method (that is, bypass the parent method), I know this is code smell, but sometimes I can't change the other classes (frameworks, libraries, etc).</p>
  
  <p>In PHP we can do that with something like:</p>
  
  <pre><code>call_user_func(array(get_parent_class(get_parent_class($childObject)), 'grandParentMethod'));
  </code></pre>
  
  <p>The problem is that if you have E_STRICT errors enabled you will get an error like:</p>
  
  <p><strong>Strict standards: non-static method GrandParent::grandParentMethod() should not be called statically in ...</strong></p>
  
  <p>I've found only one solution for this (without removing E_STRICT), and it's just adding the <code>@</code> to supress the error.</p>
  
  <p>But that's really ugly, does somebody know a better solution?</p>
  
  <p>Thanks !
  PS: I can't instantiate a new object like:</p>
  
  <pre><code>$grandparent = get_parent_class(get_parent_class($son));
  $gp= new $grandparent;
  $gp-&gt;grandParentMethod
  </code></pre>
  
  <p>because I need to call my grandparent method in the context of $son.</p>