powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Проверка числа.
33 сообщений из 33, показаны все 2 страниц
(PHP) Проверка числа.
    #35904539
Linux2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть переменная с каким нибудь значением: число или строка. Как сделать проверку этой переменной, чтобы если там хранится число то после проверки оно и оставалось данным числом. Если строка то переменная становилась равно 1. Также если значение 0, то значение переменной 1.

Написал прототип:

<?php
$a = "d31";

$a = intval($a);
if (empty($a)) $a = 1;

echo $a;
?>

Заданные функции выполняет, но думаю что есть более "красивый" вариант реализации.
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35904545
Linux2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Придумал ещё такую проверку: if (!$a = intval($a)) $a = 1; но что-то мне кажется тоже не красиво это выглядит....
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35904571
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо проверять тип данных. А то при $a = "25" (в данном случае это строка) будет преобразование в число 25.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35904919
Linux2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle
Надо проверять тип данных. А то при $a = "25" (в данном случае это строка) будет преобразование в число 25.


Не до конца описал задание, в случае $a="25", переменная должна получить значение 25.
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35904943
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Linux2000Придумал ещё такую проверку: if (!$a = intval($a)) $a = 1; но что-то мне кажется тоже не красиво это выглядит....нормальная проверка, ну можно для разнообразия

$a = intval($a)?intval($a):1;
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35904961
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Anjey aka PMLinux2000Придумал ещё такую проверку: if (!$a = intval($a)) $a = 1; но что-то мне кажется тоже не красиво это выглядит....нормальная проверка, ну можно для разнообразия

$a = intval($a)?intval($a):1;А почему Вы считаете, что 0 - не число?
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35904967
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Linux2000Также если значение 0, то значение переменной 1.Пардон, факир был пьян и фокус не удался.
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35904971
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> $a = intval($a)?intval($a):1;

Слишком часто повторяется intval
(c) не помню чей
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35904994
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

согласен =)
потому вариант предложенный самим автором с иф-ом лучше всего
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35905166
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
if(($a=(integer)$a)== 0 ) $a= 1 ;
Еще один дурацкий способ)
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35905219
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35905227
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
$a = "d31";

$a = intval($a);
if (empty($a)) $a =  1 ;

echo $a;
а что будет если написать $a = 123d
?
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35905537
Linux2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow
Код: plaintext
1.
2.
3.
4.
5.
$a = "d31";

$a = intval($a);
if (empty($a)) $a =  1 ;

echo $a;
а что будет если написать $a = 123d
?

Будет 123.


А почему Вы считаете, что 0 - не число?

Данная функция будет использоваться для страничной навигации, соответственно если число целое-положительно то оно таким и должно остаться. Если переменная равна 0 или строке, то значение должно быть 1.
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35905743
amge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А еще можно регуляркой :)
Код: plaintext
$a = preg_replace("/^0+$|.*\D.*/", 1, $a);
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35905857
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> если число целое-положительно

А если отрицательное? Ну, ручками в УРЛ вбитое ;-)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #35906021
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о чем вообще спор? как количество if'ов уменьшить? а надо ли?
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36259809
Dr_Acula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Linux2000Придумал ещё такую проверку: if (!$a = intval($a)) $a = 1; но что-то мне кажется тоже не красиво это выглядит....

Инверсия будет работать неправильно. Нужно вот так:
if ($a != intval($a)) $a = 1;
или так:
if !($a == intval($a)) $a = 1;
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36275303
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что если

if (!is_numeric($a)) $a = 1;
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36275318
phpTeach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hettа что если

if (!is_numeric($a)) $a = 1;

Дробные числа тогда пройдут
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36275332
phpTeach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если данныя функция у тебя используется для навигации, то в любом случаи на вход в функцию ты получишь строку, но никак не число
Код: plaintext
1.
2.
3.
settype($a, 'integer');
if ($a <  1 ) {
	$a =  1 ;
}
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36275686
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про дробные числа просто ничего небыло сказано.

А так чем плохо?

Код: plaintext
1.
    $a = intval($a);
    if ($a ==  0 ) $a= 1 ;
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36275688
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из описания на php.net

автор(PHP 4, PHP 5)

intval — Get the integer value of a variable


The integer value of var on success, or 0 on failure. Empty arrays and objects return 0, non-empty arrays and objects return 1.
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36275694
phpTeach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettПро дробные числа просто ничего небыло сказано.

А так чем плохо?

Код: plaintext
1.
    $a = intval($a);
    if ($a ==  0 ) $a= 1 ;


Ничем, у меня в прошлом посте аналогичное решение
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36275702
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Более компактно.

Код: plaintext
if (($a = intval($a)) <  1 ) $a= 1 ;

Менее наглядно :)
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36276049
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

мои пять копеек )))
Код: plaintext
1.
$a = max(intval($a), 1 );
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36280465
kotod13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
$anew = intval($a);
if ("$anew"!=$a){
$a=1;
}
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36280655
phpTeach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kotod13$anew = intval($a);
if ("$anew"!=$a){
$a=1;
}

Числа меньше 1 пройдут данное условие
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36281309
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kotod13$anew = intval($a);
if ("$anew"!=$a){
$a=1;
}
магия )))
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36281953
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Индийский код ;)
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #36282004
phpTeach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettИндийский код ;)

Код: plaintext
1.
2.
3.
4.
5.
6.
if ( 5  == strlen($boolean)) {
    echo 'false';
} else if ( 4  == strlen($boolean)) {
    echo 'true';
} else {
    echo 'null';
}
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
(PHP) Проверка числа.
    #37998991
Nikamka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут подробно расписано, как проверить переменную (с примером кода): Проверка переменной на целое число
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #37999090
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу видно вопрос тоже сами написали.
...
Рейтинг: 0 / 0
(PHP) Проверка числа.
    #37999124
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
детский сад какой-то:
Код: php
1.
$out = (preg_match("/^[1-9][0-9]*$/", $in)) ? intval($in) : 1;
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Проверка числа.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]