<?php
namespace hippos;
trait test {
public static function getClassName() {
return 'hi hippo';
}
}
namespace lions;
trait test {
public static function getClassName() {
return 'hi giraffe';
}
}
namespace girrafe;
use lions\test;
use hippos\test as hipposTest;
class lemons {
use hipposTest, test {
test::getClassName as myGetClassName;
}
public function sup() {
var_dump(method_exists('lemons', 'getClassName'));
var_dump(method_exists(get_class(), 'getClassName'));
var_dump(method_exists(get_class(), 'myGetClassName'));
echo $this->getClassName();
echo $this->myGetClassName();
}
}
(new \girrafe\lemons)->sup();
Fatal error: Trait method lions\test::getClassName has not been applied as girrafe\lemons::getClassName, because of collision with hippos\test::getClassName in /in/VpMGs on line 23
Process exited with code 255.
Fatal error: Trait method getClassName has not been applied, because there are collisions with other trait methods on girrafe\lemons in /in/VpMGs on line 23
Process exited with code 255.
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
Fatal error: Trait method getClassName has not been applied, because there are collisions with other trait methods on girrafe\lemons in /in/VpMGs on line 35
Process exited with code 255.