[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Такс.
Зарегестрирований
Вот не могу вспомнить как сделать проверку на цело-численность
вот к примеру:

if (is_int($numx)) {
echo "integer"
} else {echo "no integer"}

если ввести переменную $numx = 1 ,и пропустить через конструкцию то выводит else почему
или у меня просто уже мозги плывут....



Спустя 5 минут, 8 секунд (6.07.2011 - 08:39) bulgakov написал(а):
Вы уверены что вы не строку передаете в $numx?

Спустя 1 минута, 57 секунд (6.07.2011 - 08:41) bulgakov написал(а):
Сразу не заметил у вас после echo "integer" не стоит точки с запятой

Спустя 36 секунд (6.07.2011 - 08:42) bulgakov написал(а):
Да и после второго echo тоже

Спустя 23 секунды (6.07.2011 - 08:42) Зарегестрирований написал(а):
ну да там вообщето $_GET['num']
и в адресе так .php?num=1

Спустя 16 секунд (6.07.2011 - 08:42) bulgakov написал(а):

$numx = 1;
if (is_int($numx)) {
echo "integer";}
else {echo "no integer";}

Вот это работает.

Спустя 1 минута, 14 секунд (6.07.2011 - 08:43) bulgakov написал(а):
Запомните все данные которые передаются через $_GET или $_POST передаются в виде строки, поэтому перед проверкой их нужно в вашем случае преобразовать в число например так:

$numx = (int)$_GET['num'];
if (is_int($numx)) {
echo "integer";}
else {echo "no integer";}



Спустя 2 минуты, 51 секунда (6.07.2011 - 08:46) Зарегестрирований написал(а):
ВОТ ДА я искал этот (int)

Спустя 2 минуты, 23 секунды (6.07.2011 - 08:49) bulgakov написал(а):
Тогда это называется не проверка на цело-численность, а приведение типов, в данном случае приведение строки к цело-численному типу.

Спустя 1 минута, 36 секунд (6.07.2011 - 08:50) Зарегестрирований написал(а):
Но по логике ,если я привожу тип к цело-численному то проверка is_int() сразу отпадает потому что всегда будет true ?

Спустя 4 минуты, 17 секунд (6.07.2011 - 08:55) bulgakov написал(а):
Да, в этом случае эта проверка не нужна.

Спустя 43 секунды (6.07.2011 - 08:55) nugle написал(а):
bulgakov
а лучше intval()
Зарегестрирований
Будет, если записано число а не строка

Спустя 5 минут, 26 секунд (6.07.2011 - 09:01) bulgakov написал(а):
Ну в intval() просто можно еще указать основание системы счисления.

Спустя 1 минута, 25 секунд (6.07.2011 - 09:02) Зарегестрирований написал(а):
хаха
как я понял если передается строка то intval() так же как и (int) приравнивает переменную к нулю?
что тоже является целым числом?

Спустя 2 минуты, 45 секунд (6.07.2011 - 09:05) bulgakov написал(а):
Цитата
как я понял если передается строка то intval() так же как и (int) приравнивает переменную к нулю?
что тоже является целым числом?

Нет, ноль является false

Спустя 3 минуты, 29 секунд (6.07.2011 - 09:08) Зарегестрирований написал(а):
$numx = intval($_GET['num']);
if(is_int($numx) && $numx != 0) {

}
else {die("Bad ID bye!");}

Если так то при вводе num=rege выводит Bad ID
а если так
$numx = intval($_GET['num']);
if(is_int($numx)) {

}
else {die("Bad ID bye!");}

то просто выполняется скрипт и num равен 0

Спустя 3 минуты, 1 секунда (6.07.2011 - 09:11) Invis1ble написал(а):
Цитата
как я понял если передается строка то intval() так же как и (int) приравнивает переменную к нулю?

Не обязательно:
echo (int)'123Hello';

Цитата
что тоже является целым числом?

да, а чем же еще? )
$numx = intval($_GET['num']);
if(is_int($numx))

Такую проверку проводить нет смысла, потому что всегда true будет

Спустя 1 минута, 42 секунды (6.07.2011 - 09:13) linker написал(а):
Не парьте себе мозг. Если предполагается, что из $_GET или $_POST должно прийти целочисленное значение, то просто и тупо приводите его к типу
$var = (int)$_GET['param'];
если просто нужно проверить, является ли значение числом, то
echo is_numeric($_GET['param']) ? 'Число' : 'Не число'; }

Спустя 8 минут, 58 секунд (6.07.2011 - 09:22) Зарегестрирований написал(а):
ладно ,тему можно забить гвоздями
как ни как но написал я проверочку. unsure.gif

Спустя 1 минута, 3 секунды (6.07.2011 - 09:23) Invis1ble написал(а):
Зарегестрирований
Цитата
как ни как но написал я проверочку

и зря, linker правду говорит smile.gif

Спустя 8 минут, 38 секунд (6.07.2011 - 09:32) Зарегестрирований написал(а):
ну воспользовался я is_numeric из двух строчек получилась одна smile.gif

Спустя 3 часа, 12 минут, 56 секунд (6.07.2011 - 12:45) tatti написал(а):
бывает надо взять строку и вернуть число причем ограниченое допустим
//  Очистка числа по заданным условиям.
function givemeInt( /*string*/ $var, /*int*/ $min, /*int*/ $max)
{
if(!filter_var($var, FILTER_VALIDATE_INT, array("options" => array("min_range" => $min, "max_range"=> $max ))))
$var = filter_var($var, FILTER_SANITIZE_NUMBER_INT, array("options" => array("min_range" => $min, "max_range"=> $max )));
return $var;
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.