Express requirements of a trait by abstract methods. --FILE-- <?php error_reporting(E_ALL); trait Hello { public function sayHelloWorld() { echo 'Hello' . $this->getWorld(); } public abstract function getWorld(); } class MyHelloWorld { private $world; use Hello; public function getWorld() { return $this->world; } public function setWorld($val) { $this->world = $val; } } $o = new MyHelloWorld(); $o->setWorld(' World!'); $o->sayHelloWorld(); ?> --EXPECTF-- Hello World!