I want to check if user input a positive integer number.
1 = true
+10 = true
.1 = false
-1 = false
10.5 = false
Just a positive number.
No charact
Try the native Filter function*
filter_var($value, FILTER_VALIDATE_INT, array(
'options' => array('min_range' => 1)
));
* if you just want to make sure the input string consists of an arbitrary length digit sequence, use a regex with [0-9] or [\d+]
Examples with filter_var:
var_dump( filter_var(1, FILTER_VALIDATE_INT) ); // int(1)
var_dump( filter_var('1', FILTER_VALIDATE_INT) ); // int(1)
var_dump( filter_var('+10', FILTER_VALIDATE_INT) ); // int(10)
var_dump( filter_var(.1, FILTER_VALIDATE_INT) ); // bool(false)
var_dump( filter_var('.1', FILTER_VALIDATE_INT) ); // bool(false)
var_dump( filter_var(-1, FILTER_VALIDATE_INT,
array('options' => array('min_range' => 1))) ); // bool(false)
var_dump( filter_var('-1', FILTER_VALIDATE_INT,
array('options' => array('min_range' => 1))) ); // bool(false)
var_dump( filter_var('2147483648', FILTER_VALIDATE_INT) ); // bool(false)
var_dump( filter_var('0xFF', FILTER_VALIDATE_INT) ); // bool(false)
var_dump( filter_var(0xFF, FILTER_VALIDATE_INT) ); // int(255)