вот к примеру:
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
и в адресе так .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()
Зарегестрирований
Будет, если записано число а не строка
а лучше intval()
Зарегестрирований
Будет, если записано число а не строка
Спустя 5 минут, 26 секунд (6.07.2011 - 09:01) bulgakov написал(а):
Ну в intval() просто можно еще указать основание системы счисления.
Спустя 1 минута, 25 секунд (6.07.2011 - 09:02) Зарегестрирований написал(а):
хаха
как я понял если передается строка то intval() так же как и (int) приравнивает переменную к нулю?
что тоже является целым числом?
как я понял если передается строка то 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) Зарегестрирований написал(а):
ладно ,тему можно забить гвоздями
как ни как но написал я проверочку.
как ни как но написал я проверочку.
Спустя 1 минута, 3 секунды (6.07.2011 - 09:23) Invis1ble написал(а):
Зарегестрирований
Цитата |
как ни как но написал я проверочку |
и зря, linker правду говорит
Спустя 8 минут, 38 секунд (6.07.2011 - 09:32) Зарегестрирований написал(а):
ну воспользовался я is_numeric из двух строчек получилась одна
Спустя 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;
}