public function __construct($lower, $upper)
{
if (!is_int($lower)) {
throw new Exception("Not an integer: " . var_export($lower, true));
}
if (!is_int($upper) && $upper !== null) {
throw new Exception("Not an integer or null: " . var_export($upper, true));
}
if ($upper !== null && !($lower <= $upper)) {
throw new Exception("Upper: " . var_export($upper, true) . " is less than lower: " . var_export($lower, true));
}
$this->lower = $lower;
$this->upper = $upper;
}