百科狗-知识改变命运!

is_int() - php 变量处理函数

百变鹏仔2年前 (2023-11-21)阅读数 29#技术干货
文章标签字符串

is_int()

(PHP 4, PHP 5, PHP 7)

is_int() - php 变量处理函数

检测变量是否是整数

描述

is_int(mixed $var): bool

如果$var是integer则返回TRUE,否则返回FALSE

Note:

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

参见is_bool()、is_float()、is_integer()、is_numeric()、is_string()、is_array()和is_object()。

I've found that both that is_int and ctype_digit don't behave quite as I'd expect, so I made a simple function called isInteger which does. I hope somebody finds it useful.

Keep in mind that is_int() operates in signed fashion, not unsigned, and is limited to the word size of the environment php is running in.
In a 32-bit environment:

In a 64-bit environment:

If you find yourself deployed in a 32-bit environment where you are required to deal with numeric confirmation of integers (and integers only) potentially breaching the 32-bit span, you can combine is_int() with is_float() to guarantee a cover of the full, signed 64-bit span:

Simon Neaves was close on explaining why his function is perfect choice for testing for an int (as possibly most people would need). He made some errors on his ctype_digit() output though - possibly a typo, or maybe a bug in his version of PHP at the time.
The correct output for parts of his examples should be:

As you can see, the reason why using *just* ctype_digit() may not always work is because it only returns TRUE when given a string as input - given a number value and it returns FALSE (which may be unexpected).
Simon Neaves's answer is incomplete: negative integers will return false.
I recommend checking stackoverflow's answers:
http://stackoverflow.com/questions/6416763/checking-if-a-variable-is-an-integer-in-php
I've found a faster way of determining an integer.
On my env, this method takes about half the time of using is_int(). 
Cast the value then check if it is identical to the original. 

With this function you can check if every of multiple variables are int. This is a little more comfortable than writing 'is_int' for every variable you've got.

negative number will be true :)
If you want detect integer of float values, which presents as pure int or float, and presents as string values, use this functions:

Just a shorter way to check if your variable is an int or a string containing a int without others digit than 0 to 9 :

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)
{if $zbp->Config('yd1125')->foot}