value = $value; } public function compare(SortableInterface $obj, int $order = SortOrder::ASC) : bool { return $order === SortOrder::ASC ? $this->value > $obj->value : $this->value < $obj->value; } public function equals(SortableInterface $obj) : bool { return $this->value === $obj->getValue(); } public function getValue() : int|float { return $this->value; } public static function max(array $list) : int|float { $values = []; foreach ($list as $element) { $values[] = $element->value; } return \max($values); } public static function min(array $list) : int|float { $values = []; foreach ($list as $element) { $values[] = $element->value; } return \min($values); } }