PHP 第二节 数据类型之数值型


Posted in PHP onApril 28, 2012

PHP 支持8种基本的数据类型。

四种标量类型:

  • boolean (布尔型)
  • integer (整型)
  • float (浮点型, 也称作 double)
  • string (字符串)

两种复合类型:

  • array (数组)
  • object (对象)

最后是两种特殊类型:

  • resource (资源)
  • NULL (NULL)

boolean数据类型:

取值只能为True或者False,当其他类型转化为boolean类型时,以下值被认为是 FALSE

  • the 布尔FALSE 自身
  • the 整型值 0 (零)
  • the 浮点型值 0.0 (零)
  • 字符串, 以及字符串 "0"
  • 不包括任何元素的数组
  • 不包括任何成员变量的对象(仅PHP 4.0 适用)
  • 特殊类型 NULL (包括尚未设定的变量)
  • 从没有任何标记(tags)的XML文档生成的SimpleXML 对象

所有其它值都被认为是 TRUE(包括任何资源)。

integer数据类型:

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

八进制表示数字前必须加上 0(零),十六进制表示数字前必须加上 0x

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

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

PHP 中没有整除的运算符。1/2 产生出 float 0.5。可以总是舍弃小数部分,或者使用 round() 函数。

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

布尔值转换,FALSE 将产生出 0(零),TRUE 将产生出 1(壹)。

浮点数转换,当从浮点数转换成整数时,将向零取整。如果浮点数超出了整数范围(通常为 +/- 2.15e+9 = 2^31),则结果不确定,因为没有足够的精度使浮点数给出一个确切的整数结果。在此情况下没有警告,甚至没有任何通知!

float数据类型

浮点数的字长和平台相关,尽管通常最大值是 1.8e308 并具有 14 位十进制数字的精度(64 位 IEEE 格式)。

显然简单的十进制分数如同 0.10.7 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果:例如,floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9

这和一个事实有关,那就是不可能精确的用有限位数表达某些十进制分数。例如,十进制的 1/3 变成了 0.3

所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数或者 gmp 函数。

PHP 相关文章推荐
discuz Passport 通行证 整合笔记
Jun 30 PHP
php strtotime 函数UNIX时间戳
Jan 14 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
Jun 18 PHP
PHP编程风格规范分享
Jan 15 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 PHP
PHP控制前台弹出对话框的实现方法
Aug 21 PHP
PHP将URL转换成短网址的算法分享
Sep 13 PHP
PHP中“=>
Mar 01 PHP
PHP 自动加载类原理与用法实例分析
Apr 14 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
May 27 PHP
php+websocket 实现的聊天室功能详解
May 27 PHP
有关PHP 中 config.m4 的探索
Aug 26 PHP
PHP 第一节 php简介
Apr 28 #PHP
PHP原生模板引擎 最简单的模板引擎
Apr 25 #PHP
php实现rc4加密算法代码
Apr 25 #PHP
PHP filter_var() 函数 Filter 函数
Apr 25 #PHP
iis下php mail函数的sendmail配置方法(官方推荐)
Apr 25 #PHP
php判断变量类型常用方法
Apr 24 #PHP
介绍一些PHP判断变量的函数
Apr 24 #PHP
You might like
PHP 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
使用PHP静态变量当缓存的方法
2013/11/13 PHP
PHP中单引号与双引号的区别分析
2014/08/19 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
Vue data的数据响应式到底是如何实现的
2020/02/11 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
python实现车牌识别的示例代码
2019/08/05 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
Python测试框架:pytest学习笔记
2020/10/20 Python
详解Python调用系统命令的六种方法
2021/01/28 Python
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
导师就业推荐信范文
2014/05/22 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
医院合作意向书范本
2015/05/08 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python