code: protected function compareValues($operator, $type, $value, $compareValue)
      {
          if ($type === self::TYPE_NUMBER) {
              $value = (float) $value;
              $compareValue = (float) $compareValue;
          } else {
              $value = (string) $value;
              $compareValue = (string) $compareValue;
          }
          switch ($operator) {
              case '==':
                  return $value == $compareValue;
              case '===':
                  return $value === $compareValue;
              case '!=':
                  return $value != $compareValue;
              case '!==':
                  return $value !== $compareValue;
              case '>':
                  return $value > $compareValue;
              case '>=':
                  return $value >= $compareValue;
              case '<':
                  return $value < $compareValue;
              case '<=':
                  return $value <= $compareValue;
              default:
                  return false;
          }
      }
docs: Compares two values with the specified operator.
  @param string $operator the comparison operator
  @param string $type the type of the values being compared
  @param mixed $value the value being compared
  @param mixed $compareValue another value being compared
  @return bool whether the comparison using the specified operator is true.