搜网站设计案例:
当前位置:卓越设计 > 新闻中心 > 网站建设知识 >

PHP 整型

发布时间:2017-03-20 20:10 来源:卓越设计 点击:

  整型
 
  一个integer是集合Z={...,-2,-1,0,1,2,...}中的一个数。
 
  参见
 
  任意长度整数/GMP
 
  浮点数
 
  任意精度数学库/BCMath
 
  语法
 
  整型值可以使用十进制,十六进制或八进制表示,前面可以加上可选的符号(-或者+)。
 
  八进制表示数字前必须加上0(零),十六进制表示数字前必须加上0x。
 
  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]+
 
  integer:[+-]?decimal
 
  |[+-]?hexadecimal
 
  |[+-]?octal
 
  整型数的字长和平台有关,尽管通常最大值是大约二十亿(32位有符号)。PHP不支持无符号整数。Integer值的字长可以用常量PHP_INT_SIZE来表示,自PHP4.4.0和PHP5.0.5后,最大值可以用常量PHP_INT_MAX来表示。
 
  Warning
 
  如果向八进制数传递了一个非法数字(即8或9),则后面其余数字会被忽略。
 
  Example#2八进制数的怪事
 
  <?php
 
  var_dump(01090);//八进制010=十进制8
 
  ?>
 
  整数溢出
 
  如果给定的一个数超出了integer的范围,将会被解释为float。同样如果执行的运算结果超出了integer范围,也会返回float。
 
  <?php
 
  $large_number=2147483647;
 
  var_dump($large_number);
 
  //输出为:int(2147483647)
 
  $large_number=2147483648;
 
  var_dump($large_number);
 
  //输出为:float(2147483648)
 
  //同样也适用于十六进制表示的整数:从2^31到2^32-1:
 
  var_dump(0xffffffff);
 
  //输出:float(4294967295)
 
  //不适用于大于2^32-1的十六进制表示的数:
 
  var_dump(0x100000000);
 
  //输出:int(2147483647)
 
  $million=1000000;
 
  $large_number=50000*$million;
 
  var_dump($large_number);
 
  //输出:float(50000000000)
 
  ?>Warning
 
  不幸的是PHP中有个bug,因此当有负数参与时结果并不总是正确。例如当运算-50000*$million时结果是-429496728。不过当两个运算数都是正数时就没问题。
 
  这个问题已经在PHP4.1.0中解决了。
 
  PHP中没有整除的运算符。1/2产生出float0.5。可以总是舍弃小数部分,或者使用round()函数。ThereisnointegerdivisionoperatorinPHP.1/2yieldsthefloat0.5.Thevaluecanbecastedtoanintegertorounditdownwards,ortheround()functionprovidesfinercontroloverrounding.
 
  <?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(壹)。
 
  从浮点数转换
 
  当从浮点数转换成整数时,将向零取整。
 
  如果浮点数超出了整数范围(通常为+/-2.15e+9=2^31),则结果不确定,因为没有足够的精度使浮点数给出一个确切的整数结果。在此情况下没有警告,甚至没有任何通知!
 
  Warning
 
  决不要将未知的分数强制转换为integer,这样有时会导致不可预料的结果。
 
  <?php
 
  echo(int)((0.1+0.7)*10);//显示7!
 
  ?>
 
  参见关于浮点数精度的警告。
 
  从字符串转换
 
  参见字符串转换为数字
 
  从其它类型转换
 
  Caution
 
  没有定义从其它类型转换为整型的行为。不要依赖任何可见的行为,因为它会未加通知地改变。Thebehaviourofconvertingtointegerisundefinedforothertypes.Donotrelyonanyobservedbehaviour,asitcanchangewithoutnotice.



更多北京网站建设知识,请点击卓越设计 www.zysj360.com

PHP 整型相关的新闻:


服务项目:企业网站建设、网站维护、网站设计、网站推广、软文发布、商城网站建设、网站优化、虚拟主机、域名注册、企业邮箱、企业宣传片、平面设计、VI设计、礼品设计、产品设计
90设计架构:设计部(北京)、网络部(北京)、客服部(北京)、市场部(全国各地)
欢迎全国各地的中小企业用户致电我们,索取网站建设报价!