<?php
trait student {
    public $name;
    public function say() {
        printf('I\'m %s. ', $this->name);
    }
    
    public function eat() {
        printf('<br>%s', __TRAIT__);
    }
}
trait person {
    public $age;
    public $birthday;
    
    public function eat() {
        echo '<br>I don\'t like eating.';
    }
}
trait animal {
    public function eat() {
        echo '<br>What?';
    }
}
class super {
    use student, person, animal {
        student::say as private _say;
        student::eat insteadof person, animal;
    }
    public function say() {
        $this->_say();
        printf('<br>I\'m %d years old. ', $this->age);
    }
}
$s = new super();
$s->name = 'Tom';
$s->age = 15;
$s->say();
$s->eat();
      

