title: Declaration of ... should be compatible with ... - overwrite parent method completely?
body: <p>I get this error <code>Strict standards: Declaration of Boo::sayHello() should be compatible with Foo::sayHello($param = false) in C:\...</code></p>
  
  <p>Because I don't set <code>$param = false</code> or <code>true</code> in the extended child class.</p>
  
  <pre><code>class Foo
  {
      var $message = 'Hello Foo';
  
      public function sayHello($param = false)
      {
          return $this-&gt;message;
      }
  }
  
  class Boo extends Foo
  {
      public function sayHello($param)
      {
          return 'Hello Boo';
      }
  
      public function sayWorld($b)
      {
          return 'Hello World';
      }
  }
  
  $boo = new Boo;
  var_dump($boo-&gt;sayHello('a'));
  var_dump($boo-&gt;sayWorld('b'));
  </code></pre>
  
  <p>Is it possible to <strong>overwrite completely</strong> or <strong>redefine</strong> the method in the parent class?</p>
  
  <p>By the way, is it a <strong>bad</strong> practice by doing so?</p>