34 $theInt = (int)$theInt;
37 if ($defaultValue && !$theInt) {
38 $theInt = $defaultValue;
56 $theInt = (int)$theInt;
73 if ($var ===
'' || is_object($var) || is_array($var)) {
76 return (
string) (int)$var === (
string) $var;
89 $pattern_lnum =
'[0-9]+';
90 $pattern_dnum =
'([0-9]*[\.]' . $pattern_lnum .
')|(' . $pattern_lnum .
'[\.][0-9]*)';
91 $pattern_exp_dnum =
'[+-]?((' . $pattern_lnum .
'|' . $pattern_dnum .
')([eE][+-]?' . $pattern_lnum .
')?)';
93 if ($var ===
'' || is_object($var) || is_array($var)) {
97 $matches = preg_match(
'/^' . $pattern_exp_dnum .
'$/', $var);
98 return $matches === 1;
110 $string = preg_replace(
'/[[:space:]]*/',
'', $string);
112 $string =
'+' . $string;
113 $qm =
'\\*\\/\\+-^%';
114 $regex =
'([' . $qm .
'])([' . $qm .
']?[0-9\\.]*)';
117 preg_match_all(
'/' . $regex .
'/', $string, $reg);
122 $buffer = doubleval(current($reg[2]));
125 while (list($k, $v) = each($reg[2])) {
128 if ($sign ==
'+' || $sign ==
'-') {
129 $Msign ==
'-' ? ($number -= $buffer) : ($number += $buffer);
137 $err =
'dividing by zero';
144 $err =
'dividing by zero';
151 $buffer = pow($buffer, $v);
155 $number = $Msign ==
'-' ? ($number -= $buffer) : ($number += $buffer);
156 return $err ?
'ERROR: ' . $err : $number;
169 $valueLenO = strcspn($string,
'(');
170 $valueLenC = strcspn($string,
')');
171 if ($valueLenC == strlen($string) || $valueLenC < $valueLenO) {
172 $value = self::calculateWithPriorityToAdditionAndSubtraction(substr($string, 0, $valueLenC));
173 $string = $value . substr($string, ($valueLenC + 1));
176 $string = substr($string, 0, $valueLenO) . self::calculateWithParentheses(substr($string, ($valueLenO + 1)));
183 }
while ($valueLenO < strlen($string));
196 $value = filter_var($value, FILTER_VALIDATE_INT, array(
198 'min_range' => $minimum,
199 'max_range' => $maximum
202 $isInRange = is_int($value);
static forceIntegerInRange($theInt, $min, $max=2000000000, $defaultValue=0)
static canBeInterpretedAsFloat($var)
static canBeInterpretedAsInteger($var)
static calculateWithPriorityToAdditionAndSubtraction($string)
static calculateWithParentheses($string)
static isIntegerInRange($value, $minimum, $maximum)
static convertToPositiveInteger($theInt)