一个 integer 是集合 ℤ = {..., -2, -1, 0, 1, 2, ...} 中的一个数。

语法

整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。

二进制表达的 integer 自 PHP 5.4.0 起可用。

要使用八进制表达,数字前必须加上 0(零)。要使用十六进制表达,数字前必须加上 0x。要使用二进制表达,数字前必须加上 0b。

Example #1 整数文字表达<?php

$a = 1234; // 十进制数

$a = -123; // 负数

$a = 0123; // 八进制数 (等于十进制 83)

$a = 0x1A; // 十六进制数 (等于十进制 26)

?>

整型 integer 的正式描述为:

decimal : [1-9][0-9]*

| 0

hexadecimal : 0[xX][0-9a-fA-F]+

octal : 0[0-7]+

binary : 0b[01]+

integer : [+-]?decimal

| [+-]?hexadecimal

| [+-]?octal

| [+-]?binary

整型数的字长和平台有关,尽管通常最大值是大约二十亿(32 位有符号)。64 位平台下的最大值通常是大约 9E18。PHP 不支持无符号整数。Integer 值的字长可以用常量 PHP_INT_SIZE来表示,自 PHP 4.4.0 和 PHP 5.0.5后,最大值可以用常量 PHP_INT_MAX 来表示。

Warning

如果向八进制数传递了一个非法数字(即 8 或 9),则后面其余数字会被忽略。

Example #2 八进制数的怪事<?php

var_dump(01090); // 八进制 010 = 十进制 8

?>

整数溢出

如果给定的一个数超出了 integer 的范围,将会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float。

Example #3 32 位系统下的整数溢出<?php

$large_number = 2147483647;

var_dump($large_number); // int(2147483647)

$large_number = 2147483648;

var_dump($large_number); // float(2147483648)

$million = 1000000;

$large_number = 50000 * $million;

var_dump($large_number); // float(50000000000)

?>

Example #4 64 位系统下的整数溢出<?php

$large_number = 9223372036854775807;

var_dump($large_number); // int(9223372036854775807)

$large_number = 9223372036854775808;

var_dump($large_number); // float(9.2233720368548E+18)

$million = 1000000;

$large_number = 50000000000000 * $million;

var_dump($large_number); // float(5.0E+19)

?>

PHP 中没有整除的运算符。1/2 产生出 float 0.5。值可以舍弃小数部分强制转换为 integer,或者使用 round() 函数可以更好地进行四舍五入。<?php

var_dump(25/7); // float(3.5714285714286)

var_dump((int) (25/7)); // int(3)

var_dump(round(25/7)); // float(4)

?>

转换为整型

要明确地将一个值转换为 integer,用 (int) 或 (integer) 强制转换。不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要一个 integer 参数时,值会自动转换。还可以通过函数 intval() 来将一个值转换成整型。

参见:类型转换的判别。

从布尔值转换

FALSE 将产生出 0(零),TRUE 将产生出 1(壹)。

从浮点型转换

当从浮点数转换成整数时,将向下取整。

如果浮点数超出了整数范围(32 位平台下通常为 +/- 2.15e+9 = 2^31,64 位平台下通常为 +/- 9.22e+18 = 2^63),则结果为未定义,因为没有足够的精度给出一个确切的整数结果。在此情况下没有警告,甚至没有任何通知!

Warning

决不要将未知的分数强制转换为 integer,这样有时会导致不可预料的结果。<?php

echo (int) ( (0.1+0.7) * 10 ); // 显示 7!

?>

参见关于浮点数精度的警告。

从字符串转换

参见字符串转换为数值。

从其它类型转换

Caution

没有定义从其它类型转换为整型的行为。不要依赖任何现有的行为,因为它会未加通知地改变。 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

php整型的最大值,php整型(Integer)相关推荐

  1. C语言加强学习营(二):定义整型的最大值和最小值

    示例 #include <stdio.h> #include <stdint.h>int main(int argc, char **argv) {uint8_t uint8_ ...

  2. C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。

    例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...

  3. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第22讲:PHP语法、数据类型(整型、布尔型、浮点型、字符串型)

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第22讲:PHP语法.数据类型(整型.布尔型.浮点型.字符串型) PHP语法是什么样的,有哪些数据类型,有些什么变量.本文对PHP语法.数据类型(整型.布尔型 ...

  4. c++基本数据类型基本类型: 整型: 短整型: short int 整型: int 长整型:long int 字符型:char(分为有符号和无符号,默认有符号) 浮点型:

    基本类型: 整型: 短整型: short int 整型: int 长整型:long int 字符型:char(分为有符号和无符号,默认有符号) 浮点型:单精度型:float 双精度型:double 长 ...

  5. 整型与无符号整型相加

    整型与无符号整型相加结果怎么算?? 定义两个变量i,j. int i = -20; unsigned int j = 10; int m = i + j;         cout << ...

  6. C++阶段01笔记02【数据类型(整型、sizeof关键字、实型(浮点型)、字符型、转义字符、字符串型、布尔类型 bool、数据的输入)】

    C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 2 数据类型 2.1 整型 2.2 sizeof关键字 2.3 实型(浮点型) 2.4 字符型 2.5 转义字符 2.6 字符串 ...

  7. php无符号整数转有符号整数,PHP中把有符号整型转换为无符号整型方法_PHP教程...

    PHP中把有符号整型转换为无符号整型方法 这篇文章主要介绍了PHP中把有符号整型转换为无符号整型方法,转换的方法很简单,本文直接给出转换方法,需要的朋友可以参考下 在一个短地址项目中,根据六位字符与I ...

  8. 八、一篇文章快速搞懂MySQL 常见的数据类型(整型、小数、字符型、日期型详解)

    常见的数据类型 1.数值型: 整型 小数: 定点数 浮点数 2.字符型: 较短的文本:char.varchar 较长的文本:text.blob(较长的二进制数据) 3.日期型: 一.整型 1)分类: ...

  9. 无符号整型与有符号整型

    最近对于有符号整型与无符号整型,感觉很是头疼,都不知道怎么一回事.先看例子 #include<stdio.h> int main(void) {     unsigned a=2;     ...

最新文章

  1. android时间轴折线图,带时间轴的折线图
  2. 现在使用控件, 更喜欢继承(覆盖控件已有的函数,很奇怪的一种使用方式)...
  3. Python编程基础:第二十四节 作用域Scope
  4. golang内置数据类型作为函数参数
  5. 【推荐系统】推荐系统里,你是怎么Embedding的?
  6. 【Java】常见的异常和Throwable类
  7. 2017.9.23 新Nim游戏 失败总结
  8. jetty java heap space_JFinal + HTTL + jdk1.7 启动服务内存溢出,Java heap space 但jdk1.6正常...
  9. java程序猿总结出来的经验
  10. 【leetcode】940. Distinct Subsequences II
  11. Atitit 信息化数据采集与分析解析 技术 处理技术 爬虫与http rest json xml h5解析 db数据库 mail协议与处理 数据压缩与解压 数据处理 文本处理
  12. php wps导入数据库,金山的wps的表格怎样导入sqlserver2008数据库中??_wps excel表格怎么导入数据库...
  13. 人工智能发展历程、机器学习分类、人工智能设计到的数学知识
  14. (转贴)联想员工亲历联想大裁员:公司不是家
  15. Python中scatter函数参数搞懂之新手上路
  16. 广义表详解(C语言版)
  17. linux怎么下载dnw工具,Deepin Linux 安装dnw工具
  18. 绑定变量窥视_窥视量子计算与密码学
  19. linux 文件大小单位显示
  20. 求和计算机教案,數列求和教案.doc

热门文章

  1. 分享几款让你工作事半功倍的软件
  2. 屈原·渔父的算法追求
  3. 全国计算机noi,【坑爹】中国计算机学会关于CCF NOI省内选拔的若干规定
  4. 几款常用UML建模工具解析
  5. matlab读int16读文件_[转载]Matlab中的textread textscan读取文本文件
  6. SAP ABAP 我的文章合集:ABAP and Excel
  7. 左、右外连接的写法及(+)的用法
  8. jav皮卡_前5名:12个模因,皮卡第,AMP打开还是关闭? 和更多
  9. Twitter账号老被封?一文教会你怎么养号
  10. 大厂“P8/P9”必读《成为思维高手》pdf 电子书下载