webgrig пишет:нужно получить константы только текущего класса Если думать логично, то можно создать промежуточный класс [разумеется в том случае, если к базовому классу нет доступа(например, дочерний класс реализует некий интерфейс)], который будет расширять базовый класс. Этот промежуточный класс будет содержать только один статический метод, возвращающий константы базового класса. Ну а дальше просто извлекать из массивов необходимые константы (см. пример)Спойлер (Отобразить)PHP:
скопировать код в буфер обмена
class Foo { const ONE = 1; const TWO = 2; } class Bar extends Foo { const THREE = 3; const FOUR = 4; public static function getConstants() { return (new ReflectionClass(__CLASS__))->getConstants(); } } class Temp extends Foo { public static function getConstants() { return (new ReflectionClass(__CLASS__))->getConstants(); } } $constBar = array_diff(Bar ::getConstants(), Temp ::getConstants()); echo '<pre>'; var_dump($constBar); echo '</pre>';
P.S.: может это быдлокод? тогда подправьте меня, пожалуйста.(Отредактировано автором: 12 Июля, 2017 - 00:07:01)
|