百科狗-知识改变命运!
--

is_int() - php 变量处理函数

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

is_int()

is_int() - php 变量处理函数

(PHP 4, PHP 5, PHP 7)

检测变量是否是整数

描述

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 :

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

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