PHP проверка на число

627
20 января 2017, 10:08

Как в php проверить является ли переменная целым положительным число. Именно целым (дробное не допускается), т.е. функция is_numeric не подходит. ( is_int тоже не подходит )

Answer 1
if (($val = intval($val)) && ($val > 0))
  ...
Answer 2
if (preg_match('/^\+?\d+$/', $value)) {
    echo "Целое положительное число :-)";
}
Answer 3

Можно так:

if ($value && ctype_digit((string)$value)) {
    echo "$value is positive integer\n";
}

Или так:

$value = filter_var($value, FILTER_VALIDATE_INT, array("options" => array("min_range" => 1)));
if ($value !== faslse) {
    echo "$value is positive integer\n";
}
Answer 4
if(intval($a) === $a && $a > 0){...}
Answer 5
$a = 100;
//$a = '1a';
//$a = 0;
//$a = '1,1';
//$a = 1.1;
//$a  = 'a';
if(!intval($a) or $a < 1 or !preg_match('/^\+?\d+$/', $a))
{
    echo 'BaD';
}
else
{
    echo 'GooD';
}
Answer 6
if ($val *= 1 && $val > 0) {
    echo 'ok';
}

:)

Answer 7
if(is_integer($int) && $int > 0){
   echo 'Это число. И оно больше нуля';
}
else{
   echo 'Не, не катит';
}
Answer 8
if ( ( is_int( $a ) || ctype_digit( $a ) ) && $a > 0 )
if ( ( is_int( $a ) || (string) intval( $a ) === $a ) && $a > 0 )
if ( ( preg_match( '/^[1-9]\d*$/', $a ) ) || ( is_int( $a ) && $a > 0 ) )

P.S: Существует бесконечное кол-во способов решения вашего туманно сформулированного вопроса

Answer 9

как вариант проверь сначала is_numeric, а потом проверь что в строке отсутствуют знаки '+' и '.' и ','

Answer 10

a gettype() ?

Answer 11
if(is_numeric($val) && intval($val)>0 && intval($val) == ceil(intval($val))) {
}
Answer 12

Мне нравится такое решение, всегда использую:

$v = "dfgf";
if ((int)$v) > 0) {
  echo "Целое положительное";
}
READ ALSO
Xampp и phpword на windows

Xampp и phpword на windows

Отказывается работать phpword при создании файла на основе шаблонаВыдаёт ошибки

398
PHP Array. Убрать дубли и перезаписать значение [option] из дублей

PHP Array. Убрать дубли и перезаписать значение [option] из дублей

Всем привет! Есть массив, который приходит на view:

326