при выполнении кода получим 1 PHP: class a { public static $a=1; public static function getA(){ return self::$a; } } class b extends a { static public $a=2; } var_dump(b::getA()); //int(1) а хотелось бы двоечку PHP: trait getA{ public static function getA(){ return self::$a; } } class a { public static $a=1; } class b extends a { use getA; static public $a=2; } var_dump(b::getA()); // int(2) но тут код масштабно переделывать нужно Может есть правильные варианты?
В первом варианте в методе getA() попробуйте вместо self написать static. Это называется позднее статическое связывание