/
www
/
wwwroot
/
alo88.autos
/
wp-content
/
plugins
/
wp-content-crawler
/
app
/
Objects
/
Enums
/
Upload File
HOME
<?php /** * Created by PhpStorm. * User: turgutsaricam * Date: 24/02/17 * Time: 13:00 */ namespace WPCCrawler\Objects\Enums; use ReflectionClass; /** * A base class for enums providing a few methods to check whether the defined enums are valid or not. * * @see http://stackoverflow.com/a/254543/2883487 */ abstract class EnumBase { /** @var array|null */ private static $constCacheArray = NULL; private static function getConstants(): array { if (self::$constCacheArray == NULL) self::$constCacheArray = []; $calledClass = get_called_class(); if (!array_key_exists($calledClass, self::$constCacheArray)) { $reflect = new ReflectionClass($calledClass); self::$constCacheArray[$calledClass] = $reflect->getConstants(); } return self::$constCacheArray[$calledClass]; } /** * Check if the enum name is valid. * * @param string $name * @param bool $strict * @return bool */ public static function isValidName($name, $strict = false) { $constants = self::getConstants(); if ($strict) { return array_key_exists($name, $constants); } $keys = array_map('strtolower', array_keys($constants)); return in_array(strtolower($name), $keys); } /** * Check if the enum value is valid. * * @param mixed $value * @param bool $strict * @return bool */ public static function isValidValue($value, $strict = true) { $values = array_values(self::getConstants()); return in_array($value, $values, $strict); } }