public function intersect(Range $range) { $lowestNumber = max($range->getLowestNumber(), $this->lowestNumber); $highestNumber = min($range->getHighestNumber(), $this->highestNumber); if ($lowestNumber <= $highestNumber) { return $this->createRange($lowestNumber, $highestNumber); } return null; }