Спасибо.
Спустя 2 минуты, 59 секунд (23.08.2010 - 10:39) Basili4 написал(а):
зачем аналог ???
$a="0";
echo is_numeric($a)?1:0; //1
$a="0";
echo is_numeric($a)?1:0; //1
Спустя 7 минут, 1 секунда (23.08.2010 - 10:46) twin написал(а):
Так то оно так... Только зачем строковое представление пихать?

Спустя 9 минут, 1 секунда (23.08.2010 - 10:55) lexu написал(а):
Прошу прощения, не совсем коректно задал вопрос.
При получении данных из формы, идет проверка (допустимы только числа, нужен 0 в том числе), а is_numeric 0 не пропускает.
Как я понимаю, она считает это поле пустым.
При получении данных из формы, идет проверка (допустимы только числа, нужен 0 в том числе), а is_numeric 0 не пропускает.
Как я понимаю, она считает это поле пустым.
Спустя 12 минут, 33 секунды (23.08.2010 - 11:08) twin написал(а):
Ты наверное путаешь с empty()...
Спустя 1 минута, 27 секунд (23.08.2010 - 11:09) linker написал(а):
0 - это цифра? Цифра, значит is_numeric() пропустит.
Спустя 13 минут, 6 секунд (23.08.2010 - 11:22) Basili4 написал(а):
Цитата (twin @ 23.08.2010 - 11:46) |
ак то оно так... Только зачем строковое представление пихать? |
Ну чтоб показать, что все работатет, is_numeric находит цифру даже ели она строка
Спустя 1 минута, 31 секунда (23.08.2010 - 11:24) Basili4 написал(а):
lexu
покажи код обработчика. Специально сделал форму все циферы положительные отрицательные проходят вот только дробные не проверял.
покажи код обработчика. Специально сделал форму все циферы положительные отрицательные проходят вот только дробные не проверял.
Спустя 6 минут, 5 секунд (23.08.2010 - 11:30) lexu написал(а):
<form method="post">
<input type="text" name="a" value="<? echo htmlspecialchars($a);?>" onfocus="this.value='';">
<input type="submit" name="submit" />
</form>
<?
$a = !empty($_POST['a'])?$_POST['a']:null;
if (empty($_POST['submit']) || !is_numeric($a)) {
} else {
echo "Прошол!";
}
Не работает

Спустя 4 минуты, 8 секунд (23.08.2010 - 11:34) Basili4 написал(а):
Цитата (lexu @ 23.08.2010 - 12:30) |
<? $a = !empty($_POST['a'])?$_POST['a']:null; if (empty($_POST['submit']) || !is_numeric($a)) { } else { echo "Прошол!"; } |
Ё мое.
Я этоти кусочек возьму окуратненько
if (!empty($_POST['a']) && is_numeric($_POST['a']))
echo "Прошол!";
вот как то так.
Спустя 4 минуты, 21 секунда (23.08.2010 - 11:38) lexu написал(а):
Не, не работает! 
0 не проходит!

0 не проходит!
Спустя 2 минуты, 59 секунд (23.08.2010 - 11:41) Basili4 написал(а):
<input type="text" name="a" value="<? echo htmlspecialchars($a);?>" onfocus="this.value='';">
тогда только одно убивай вот это onfocus="this.value='';"
тогда только одно убивай вот это onfocus="this.value='';"
Спустя 2 минуты, 33 секунды (23.08.2010 - 11:44) lexu написал(а):
не помогло.. дело не в onfocus="this.value='';
Спустя 3 минуты, 53 секунды (23.08.2010 - 11:48) Basili4 написал(а):
значит тогда так
echo empty($_POST['a'])?'Пустой':$a;
echo is_numeric($_POST['a']))?"Циферь $a": "Не циферь $a" ;
и что пишет
echo empty($_POST['a'])?'Пустой':$a;
echo is_numeric($_POST['a']))?"Циферь $a": "Не циферь $a" ;
и что пишет
Спустя 4 минуты, 46 секунд (23.08.2010 - 11:52) waldicom написал(а):
Цитата (Basili4 @ 23.08.2010 - 10:48) |
echo empty($_POST['a'])?'Пустой':$a; |
Цитата |
Return Values Returns FALSE if var has a non-empty and non-zero value. The following things are considered to be empty: * "" (an empty string) * 0 (0 as an integer) * "0" (0 as a string) * NULL * FALSE * array() (an empty array) * var $var; (a variable declared, but without a value in a class) |
Спустя 2 минуты, 52 секунды (23.08.2010 - 11:55) Basili4 написал(а):
waldicom
от это я гоню.... точно
if (isset($_POST['a']) && is_numeric($_POST['a']))
echo "Прошол!";
вот как надо
от это я гоню.... точно
if (isset($_POST['a']) && is_numeric($_POST['a']))
echo "Прошол!";
вот как надо
Спустя 1 минута, 5 секунд (23.08.2010 - 11:56) lexu написал(а):
ага, вижу дело не в is_numeric
Пустой Циферь
Пустой Циферь

Спустя 2 минуты, 1 секунда (23.08.2010 - 11:58) lexu написал(а):
но, isset так же считает 0 пустым
Спустя 49 секунд (23.08.2010 - 11:59) linker написал(а):
Блин, вот вы мучаетесь
<?
$a = isset($_POST['a'])?$_POST['a']:null;
if (isset($_POST['submit']) && is_numeric($a))
{
echo "Прошол!";
}
else
{
echo "Не прошол!";
}
?>
Спустя 2 минуты, 17 секунд (23.08.2010 - 12:02) lexu написал(а):
вот так работает:
ага, и как предыдущий!
<?
$a = $_POST['a'];
if (empty($_POST['submit']) || !is_numeric($a)) {
} else{
echo $a;
}
ага, и как предыдущий!
Спустя 1 минута, 29 секунд (23.08.2010 - 12:03) lexu написал(а):
всем, огромное спасибо!

Спустя 2 часа, 56 минут, 57 секунд (23.08.2010 - 15:00) Nikitian написал(а):
Ещё вариант:
if(intval($_POST['a'])==$_POST['a']){
//numeric
}
else{
//not numeric
}
Спустя 14 минут, 50 секунд (23.08.2010 - 15:15) Basili4 написал(а):
Nikitian
а если дробное ?
а если дробное ?
Спустя 1 час, 9 минут, 25 секунд (23.08.2010 - 16:24) Nikitian написал(а):
Basili4
А если ожидается дробное, то floatval()
А если ожидается дробное, то floatval()
Спустя 1 час, 5 минут, 48 секунд (23.08.2010 - 17:30) twin написал(а):
Нотис будет.
Спустя 36 минут, 55 секунд (23.08.2010 - 18:07) Семён написал(а):
Немножко опоздал держи:
if(ctype_digit($var)) echo 'Цифра';
Спустя 1 час, 11 минут, 35 секунд (23.08.2010 - 19:19) linker написал(а):
Семён
Обсуждалось, работает медленнее чем is_numeric()
Обсуждалось, работает медленнее чем is_numeric()
Спустя 4 часа, 5 минут, 39 секунд (23.08.2010 - 23:24) Семён написал(а):
Цитата (linker @ 23.08.2010 - 20:19) |
Семён Обсуждалось, работает медленнее чем is_numeric() |
Дело не в том, что быстрее, а где лучше и что использовать, в своих проектах я предпочитаю исключительно валидацию регулярками.
Спички не там пытаетесь экономить. (на счёт benchmark я бы не кидался сравнивать функции для разных задач, кстати на досуге сравни производительность, согласно php.net - обратно твоему утверждению)
Спустя 9 часов, 19 минут, 32 секунды (24.08.2010 - 08:44) linker написал(а):
Семён
Я же сказал, обсуждалось и на php.net отсылалось и бенчмарки делались. Сливает ctype, вот как не крути. Задача одна - является ли что-то набором цифирь.
Я же сказал, обсуждалось и на php.net отсылалось и бенчмарки делались. Сливает ctype, вот как не крути. Задача одна - является ли что-то набором цифирь.