| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?php
- namespace App\Module\Game\Enums;
- use UCore\Enum\EnumCore;
- use UCore\Enum\EnumToInt;
- /**
- * 条件比较运算符枚举
- */
- enum CONDITION_OPERATOR: int
- {
- use EnumCore, EnumToInt;
- /**
- * 等于
- */
- case EQUAL = 1;
- /**
- * 不等于
- */
- case NOT_EQUAL = 2;
- /**
- * 大于
- */
- case GREATER_THAN = 3;
- /**
- * 大于等于
- */
- case GREATER_THAN_OR_EQUAL = 4;
- /**
- * 小于
- */
- case LESS_THAN = 5;
- /**
- * 小于等于
- */
- case LESS_THAN_OR_EQUAL = 6;
- /**
- * 获取所有比较运算符
- *
- * @return array
- */
- public static function getAll(): array
- {
- return [
- self::EQUAL->value => '等于',
- self::NOT_EQUAL->value => '不等于',
- self::GREATER_THAN->value => '大于',
- self::GREATER_THAN_OR_EQUAL->value => '大于等于',
- self::LESS_THAN->value => '小于',
- self::LESS_THAN_OR_EQUAL->value => '小于等于',
- ];
- }
- /**
- * 获取比较运算符名称
- *
- * @param int $operator
- * @return string
- */
- public static function getName(int $operator): string
- {
- return self::getAll()[$operator] ?? '未知';
- }
- /**
- * 检查比较运算符是否有效
- *
- * @param int $operator
- * @return bool
- */
- public static function isValid(int $operator): bool
- {
- return isset(self::getAll()[$operator]);
- }
- /**
- * 获取比较运算符符号
- *
- * @param int $operator
- * @return string
- */
- public static function getSymbol(int $operator): string
- {
- $symbols = [
- self::EQUAL->value => '=',
- self::NOT_EQUAL->value => '≠',
- self::GREATER_THAN->value => '>',
- self::GREATER_THAN_OR_EQUAL->value => '≥',
- self::LESS_THAN->value => '<',
- self::LESS_THAN_OR_EQUAL->value => '≤',
- ];
- return $symbols[$operator] ?? '?';
- }
- /**
- * 执行比较操作
- *
- * @param mixed $a 第一个值
- * @param mixed $b 第二个值
- * @param int $operator 运算符
- * @return bool 比较结果
- */
- public static function compare($a, $b, int $operator): bool
- {
- switch ($operator) {
- case self::EQUAL->value:
- return $a == $b;
- case self::NOT_EQUAL->value:
- return $a != $b;
- case self::GREATER_THAN->value:
- return $a > $b;
- case self::GREATER_THAN_OR_EQUAL->value:
- return $a >= $b;
- case self::LESS_THAN->value:
- return $a < $b;
- case self::LESS_THAN_OR_EQUAL->value:
- return $a <= $b;
- default:
- return false;
- }
- }
- }
|