<?php
trait foo {
public function bar() { }
}
class a {
use foo;
}
var_dump(get_class_methods('a'));
class b {
use foo {
bar as bat;
}
}
var_dump(get_class_methods('b'));
class c {
use foo {
bar as private bat;
}
}
var_dump(get_class_methods('c'));
class d {
use foo {
bar as private bar;
}
}
var_dump(get_class_methods('d'));
array(1) {
[0]=>
string(3) "bar"
}
array(2) {
[0]=>
string(3) "bat"
[1]=>
string(3) "bar"
}
array(1) {
[0]=>
string(3) "bar"
}
Fatal error: Trait method foo::bar has not been applied as d::bar, because of collision with foo::bar in /in/L23LJ on line 29
Process exited with code 255.
array(1) {
[0]=>
string(3) "bar"
}
array(2) {
[0]=>
string(3) "bat"
[1]=>
string(3) "bar"
}
array(1) {
[0]=>
string(3) "bar"
}
Fatal error: Trait method bar has not been applied, because there are collisions with other trait methods on d in /in/L23LJ on line 29
Process exited with code 255.
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
array(1) {
[0]=>
string(3) "bar"
}
array(2) {
[0]=>
string(3) "bat"
[1]=>
string(3) "bar"
}
array(1) {
[0]=>
string(3) "bar"
}
Fatal error: Trait method bar has not been applied, because there are collisions with other trait methods on d in /in/L23LJ on line 33
Process exited with code 255.