<?php
class TestParent
{
public function execute(array $data)
{
return array(
'test' => 'test'
);
}
}
trait TestTrait
{
public function execute(int $id)
{
return $id + 1;
}
}
class TestClass extends TestParent
{
use TestTrait {
execute as executeTrait;
}
function __construct()
{
var_dump($this->execute([]));
var_dump($this->executeTrait(2));
}
public function execute(array $data)
{
return parent::execute($data);
}
}
new TestClass();
array(1) {
["test"]=>
string(4) "test"
}
Catchable fatal error: Argument 1 passed to TestClass::execute() must be an instance of int, integer given, called in /in/gIq0E on line 30 and defined in /in/gIq0E on line 15
Process exited with code 255.
Output for 5.4.0 - 5.4.10
array(1) {
["test"]=>
string(4) "test"
}
Catchable fatal error: Argument 1 passed to TestClass::executeTrait() must be an instance of int, integer given, called in /in/gIq0E on line 30 and defined in /in/gIq0E on line 15
Process exited with code 255.