trait World {
public function sayHello()
{
echo "World!";
}
}
abstract class AbstractHello{}
class Hello extends AbstractHello {
use World;
public function sayHello()
{
echo "Hello";
$this->sayHello(); // calling its not working
}
}
class Hello2 extends AbstractHello {
use World;
}
Теперь, если я позвоню следующим образом, он должен показать «HelloWorld!»
$h = new Hello();
$h->sayHello();
И если вызов следующим образом, он должен показать "Мир!"
$h = new Hello2();
$h->sayHello();
Я не хочу менять имя метода свойств, используя оператор as, потому что метод sayHello() был вызван из других мест для дочернего класса, такого как Hello2.
Код выше не работает. Любая помощь?