Вспомогательная функция
Вы можете использовать такую функцию:
function class_constant($class, $constant)
{
if ( ! is_string($class)) {
$class = get_class($class);
}
return constant($class . '::' . $constant);
}
Она принимает два аргумента:
- Имя класса или экземпляр объекта
- Имя константы класса
Если передается экземпляр объекта, выводится его имя класса.Если вы используете PHP 7, вы можете использовать ::class
для передачи соответствующего имени класса без необходимости думать о пространствах имен.
Примеры
class MyClass
{
const MY_CONSTANT = 'value';
}
class_constant('MyClass', 'MY_CONSTANT'); # 'value'
class_constant(MyClass::class, 'MY_CONSTANT'); # 'value' (PHP 7 only)
$myInstance = new MyClass;
class_constant($myInstance, 'MY_CONSTANT'); # 'value'