getConstants(); } return self::$constCacheArray[$calledClass]; } public static function values() { return array_values(self::getConstants()); } public static function validate($value) { $values = array_values(self::getConstants()); if (!in_array($value, $values, true)) { $calledClass = get_called_class(); throw new \InvalidArgumentException("$value is not a valid value for $calledClass, possible values are " . implode(', ', $values)); } } }