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>';