trait T { private $x = 0; } class X { use T; function x() { return ++$this->x; } } class Y extends X { use T; function y() { return ++$this->x; } } class Z extends Y { function z() { return ++$this->x; } } $a = new Z(); echo join(" ", array($a->x(), $a->x(), $a->y(), $a->y(), $a->z(), $a->z())), "\n";
<?php X::$y = array(); X::$y[4] = 4; X::$y[44] = 44; X::$y[444] = 444; Y::$y = []; Y::$y[] = 5; Y::$y[] = 55; Y::$y[] = 555; Z::$y = array(); Z::$z[] = 5; Z::$z[] = 55; Z::$z[] = 555;