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

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

<?php
$a = "d31";

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

echo $a;
?>

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


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

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

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

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

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

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

echo $a;
а что будет если написать $a = 123d
?
...
Рейтинг: 0 / 0
01.04.2009, 13:09:25
    #35905537
Linux2000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Проверка числа.
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
01.04.2009, 14:08:03
    #35905743
amge
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Проверка числа.
А еще можно регуляркой :)
Код: plaintext
$a = preg_replace("/^0+$|.*\D.*/", 1, $a);
...
Рейтинг: 0 / 0
01.04.2009, 14:40:24
    #35905857
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Проверка числа.
> если число целое-положительно

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

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

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

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

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

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

Код: plaintext
1.
    $a = intval($a);
    if ($a ==  0 ) $a= 1 ;
...
Рейтинг: 0 / 0
27.10.2009, 20:22:21
    #36275688
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Проверка числа.
Из описания на 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
27.10.2009, 20:29:40
    #36275694
phpTeach
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Проверка числа.
HettПро дробные числа просто ничего небыло сказано.

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

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


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

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

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

мои пять копеек )))
Код: plaintext
1.
$a = max(intval($a), 1 );
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Проверка числа. / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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