超越PHP PHP动态 | 经典文章 | CLASS | 相关下载 | 常见问题 | FORUM | WIKI | 在线手册
Site search:    
<is_floatis_integer>
Last updated: Fri, 22 Jun 2007

is_int

(PHP 3, PHP 4 , PHP 5)

is_int -- 检测变量是否是整数

描述

bool is_int ( mixed var)

如果 varinteger 则返回 TRUE,否则返回 FALSE

注: 若想测试一个变量是否是数字或数字字符串(如表单输入,它们通常为字符串),必须使用 is_numeric()

参见 is_bool()is_float()is_integer()is_numeric()is_string()is_array()is_object()




add a note add a note User Contributed Notes
is_int
logan at logannet dot net
11-Feb-2003 07:42
[[Editors note: Or you can simply use is_numeric()]]

Some people have offered their ways to find out if a string from a form is an integer or not, here's my way:

if(ereg("^[0-9]+$", $_POST["number"])) $_POST["number"] = (int)$_POST["number"];

In psuedo code:
if you are a string full of numbers then convert yourself to an integer

So instead of just checking if its a string full of numbers you check and then convert it, which means you can use the standard is_int. You can also do:

if(ereg("^[0-9]+$", $_POST["number"])) $_POST["number"] += 0;

I think the first way i mentioned is better because your coding what you want to do, rather than the second way that uses a side effect of adding 0 to convert the string.

The first way also may make your code ever so slightly faster (nothing noticeable) as php does not need to add 0 to the number after it converts it.

Also note an integer is full numbers (1, 2, 3 etc) not decimal numbers (1.1, 2.4, 3.7 etc), to convert decimal numbers you could use something like:

if(ereg("^[.0-9]+$", $_POST["number"])) $_POST["number"] = (float)$_POST["number"];

OR

if(ereg("^[.0-9]+$", $_POST["number"])) $_POST["number"] += 0;

But note that these would not work with is_int(), because they are not integers.

<is_floatis_integer>
 Last updated: Fri, 22 Jun 2007
view source | feedback | send page | sitemap | aboutus   
Copyright ® 2002-2003 PHPE.NET. All rights reserved
Last updated:2002-11-22