Например:
<?
$a=6;
$b=$a;
if(is_int($b))
{
echo "Число";
}
{
echo "Не число";
}
?>
Виведет:
Не число
Спустя 1 минута, 24 секунды (10.11.2010 - 23:12) assasin94r написал(а):
Заранее спасибо
Спустя 2 минуты, 37 секунд (10.11.2010 - 23:14) Sanchopansa написал(а):
а ты забыл про else!!! вот и пишет.. походу он пишет сразу два ответа!
Спустя 1 минута, 8 секунд (10.11.2010 - 23:15) Sanchopansa написал(а):
вот тонкий намек.. найди 10 отличий :)
<?php
$a=6;
$b=$a;
if(is_int($b))
{
echo "Число";
}else{
echo "Не число";
}
?>
Спустя 5 минут, 59 секунд (10.11.2010 - 23:21) assasin94r написал(а):
сорри пропустил
Я всегда пишу else...
не работает
Я всегда пишу else...
не работает
Спустя 7 минут, 38 секунд (10.11.2010 - 23:29) sergeiss написал(а):
Цитата (assasin94r @ 11.11.2010 - 00:21) |
не работает |
А чего пишет?
Спустя 49 секунд (10.11.2010 - 23:30) assasin94r написал(а):
Не число
Спустя 7 минут, 58 секунд (10.11.2010 - 23:38) sergeiss написал(а):
Еще раз выложи сюда свой код. Полностью, без сокращений!!!
Спустя 45 секунд (10.11.2010 - 23:39) Lenarfate написал(а):
чтобы проверить, является ли переменная числом или числовой строкой, вы обязаны использовать is_numeric().
Спустя 2 минуты, 15 секунд (10.11.2010 - 23:41) assasin94r написал(а):
о...
большое спасибо всем, работает
большое спасибо всем, работает
Спустя 10 минут, 32 секунды (10.11.2010 - 23:51) sergeiss написал(а):
Цитата (Lenarfate @ 11.11.2010 - 00:39) |
вы обязаны использовать is_numeric() |
Не обязаны Всё зависит от того, что хотим получить.
is_int - это проверка на то, что переменная - целое число или что-то другое (не важно, что)
is_numeric - проверяет, что переменная - целое или вещественное число или что-то другое.
Спустя 6 минут, 56 секунд (10.11.2010 - 23:58) kovaldm написал(а):
В данном случае переменная не целое число?
Спустя 5 секунд (10.11.2010 - 23:58) Lenarfate написал(а):
sergeiss
это примечание из мануала к функции is_int()
это примечание из мануала к функции is_int()
Спустя 11 минут, 28 секунд (11.11.2010 - 00:10) sergeiss написал(а):
Цитата (Lenarfate @ 11.11.2010 - 00:58) |
это примечание из мануала к функции is_int() |
Что именно??? Ты перевел неправильно, значит, если утверждаешь, что ОБЯЗАНЫ использовать is_numeric.
А сказано там следующее:
Цитата |
is_int — Find whether the type of a variable is integer .... Note: To test if a variable is a number or a numeric string (such as form input, which is always a string), you must use is_numeric(). |
Цитата |
is_int - определить, является ли тип переменной ЦЕЛЫМ ... Примечание: для проверки, является ли переменная числом или числовой строкой (например, input из form всегда является строкой), вы должны использовать is_numeric |
Вот я и обратил особое внимание на то, что "обязаны использовать" относится к определенному случаю. У тебя же прозвучало более сурово, мол, всегда обязаны. А у ТС не совсем очевидная (для меня) задача, поэтому там могут быть и is_int и is_numeric, в зависимости от того, что требуется получить в результате. О чем я и написал.
Спустя 59 минут, 46 секунд (11.11.2010 - 01:10) Lenarfate написал(а):
я ничего не переводил, просто открыл php.su
Спустя 8 часов, 42 минуты, 1 секунда (11.11.2010 - 09:52) ShamanV написал(а):
Странно, у меня is_int($b) === true
Спустя 1 час, 12 минут, 24 секунды (11.11.2010 - 11:04) assasin94r написал(а):
дело в том что при передачи с переменной в переменную значение помещается в кавички (')
если число в кавичках то функция is_int считает, что переменная строковая, а функция is_numeric работает немного подругому, даже если число в кавичках оно считается числом..
если число в кавичках то функция is_int считает, что переменная строковая, а функция is_numeric работает немного подругому, даже если число в кавичках оно считается числом..
Спустя 39 минут, 1 секунда (11.11.2010 - 11:43) kovaldm написал(а):
У меня этот код выполняется - пишет что $b - число.
Спустя 9 минут, 1 секунда (11.11.2010 - 11:52) assasin94r написал(а):
Попробуй это:
должно вивести string
должно вивести integer
<?
$a='6';
if(is_int($a))
{echo "integer";}
else{echo "string";}
?>
должно вивести string
<?
$a='6';
if(is_numeric($a))
{echo "integer";}
else{echo "string";}
?>
должно вивести integer
Спустя 40 минут, 51 секунда (11.11.2010 - 12:33) ShamanV написал(а):
Цитата (assasin94r @ 11.11.2010 - 08:04) |
дело в том что при передачи с переменной в переменную значение помещается в кавички (') |
Ты это сам придумал? С какого перепугу она в кавычки помещается?
Повторюсь, запускал у себя этот пример. $b - целочисленная переменная, что и подтверждает is_int(). Как могло получиться обратное - ума не приложу.
Спустя 8 минут, 2 секунды (11.11.2010 - 12:41) linker написал(а):
sergeiss
Просто ответь '2.6' - это число? Да, число, но вот только is_integer() на нем отдаст false. Именно когда хотят проверить на число, нужно использовать is_numeric(), либо уточнять в воспрое - целое число или дробное число.
Просто ответь '2.6' - это число? Да, число, но вот только is_integer() на нем отдаст false. Именно когда хотят проверить на число, нужно использовать is_numeric(), либо уточнять в воспрое - целое число или дробное число.
Спустя 58 минут, 12 секунд (11.11.2010 - 13:39) assasin94r написал(а):
php1.php
php2.php
php3.php
<?
echo "<a href='php2.php?id=3'>3 (is_numeric)</a><br>";
echo "<a href='php3.php?id=3'>3 (is_int)</a>";
?>
php2.php
<?
if(isset($_GET['id']))$id=$_GET['id'];
if(is_numeric($id)){echo "integer";}else{echo"string";}
?>
php3.php
<?
if(isset($_GET['id']))$id=$_GET['id'];
if(is_int($id)){echo "integer";}else{echo"string";}
?>
Спустя 2 минуты, 33 секунды (11.11.2010 - 13:42) assasin94r написал(а):
сначала немножко неверный пример бил))))
Спустя 12 минут, 37 секунд (11.11.2010 - 13:54) sergeiss написал(а):
linker - речь была о том, что было высказано утверждение об ОБЯЗАТЕЛЬНОСТИ использования is_numeric вместо is_int (по крайней мере, именно так прозвучало). Я это оспорил, утверждая то, что всё зависит от поставленной цели.
Спустя 42 минуты, 15 секунд (11.11.2010 - 14:37) ShamanV написал(а):
assasin94r
Ну так это совсем другой случай. Здесь значение берется из $_GET, где значения переменных содержатся в виде строк. В url ведь строка 'php3.php?id=3', откуда интерпретатору знать, имелось ввиду 3 или '3'? Можно воспользоваться (int) или intval() для явного преобразования типа. Что собственно и делают при обращении к БД.
Ну так это совсем другой случай. Здесь значение берется из $_GET, где значения переменных содержатся в виде строк. В url ведь строка 'php3.php?id=3', откуда интерпретатору знать, имелось ввиду 3 или '3'? Можно воспользоваться (int) или intval() для явного преобразования типа. Что собственно и делают при обращении к БД.
Спустя 1 час, 59 минут, 28 секунд (11.11.2010 - 16:36) linker написал(а):
sergeiss
Это утверждение было высказано только из слов автора об определении "число" или "не число". В свете данных слов ТС, утверждение об is_numeric() является верным. Ладно, это я так, философствую
Это утверждение было высказано только из слов автора об определении "число" или "не число". В свете данных слов ТС, утверждение об is_numeric() является верным. Ладно, это я так, философствую
Спустя 6 часов, 22 минуты, 1 секунда (11.11.2010 - 22:58) ancient mariner написал(а):
Для проверки на то, является ли значение переменной числом, точно не стоит использовать intval - он вернёт true, если первый символ является числом
is_int - я попробовал, вроде бы определяет правильно.
is_int - я попробовал, вроде бы определяет правильно.
Спустя 14 часов, 19 минут, 34 секунды (12.11.2010 - 13:18) ShamanV написал(а):
Цитата (ancient mariner @ 11.11.2010 - 19:58) |
Для проверки на то, является ли значение переменной числом, точно не стоит использовать intval - он вернёт true, если первый символ является числом is_int - я попробовал, вроде бы определяет правильно. |
Не для проверки, а для приведения переменной, содержащей строку с числом к типу int. Главный вопрос был, если я не ошибаюсь, "как поместить в переменную число, а не строку?". Вот так и поместить.