title: How to overload class constructor within traits in PHP >= 5.4
body: <p>In PHP 5, I can to overload constructors (and any others methods). But if I get some code like this:</p>
  
  <pre><code>class Base {
  
      public function __construct($a, $b) {
          echo $a+$b;
      }
  
  
      public function sayHello() {
          echo 'Hello ';
      }
  }
  
  
  trait SayWorld {
  
      public function __construct($a, $b, $c = 0) {
          echo (int)$c * ($a+$b);
      }
  
      public function sayHello($a = null) {
          parent::sayHello();
          echo 'World!'.$a;
      }
  }
  
  class MyHelloWorld extends Base {
      use SayWorld;
  }
  
  $o = new MyHelloWorld(2, 3);
  $o-&gt;sayHello(1);
  </code></pre>
  
  <p>I have an error:</p>
  
  <blockquote>
    <p>Fatal error:  MyHelloWorld has colliding constructor definitions coming from traits </p>
  </blockquote>
  
  <p>How can I to fix it? You can test my code <a href="http://sandbox.onlinephpfunctions.com/code/2c61c8c1a0a829283d8f6afaecfaa08228c169cc" rel="noreferrer">here</a>.</p>