PHP INT类型在内存中占字节详解


Posted in PHP onJuly 20, 2019

本教程将介绍输出INT类型在内存中占多少个字节

新建一个333.php,如图所示:

PHP INT类型在内存中占字节详解

添加php的界定符(<?php?>),如图所示:

PHP INT类型在内存中占字节详解

声明PHP与浏览器交互的文件类型和编码,如图所示:

PHP INT类型在内存中占字节详解

使用常量 PHP_INT_SIZE 来获取INT类型在内存中占多少个字节,如图所示:

PHP INT类型在内存中占字节详解

使用 echo 语句输出常量 PHP_INT_SIZE 获取到的字节数,如图所示:

PHP INT类型在内存中占字节详解

运行网页,在浏览器上显示获取到的结果,如图所示:

PHP INT类型在内存中占字节详解

section id="smaller-text-left-7">至此,本教程结束!

至此,本教程结束!

内容扩展

php中int类型在不同平台所占不同字节数理解

1.在不同平台上占字节数与最大值

  • 在32位平台上int占4个字节,在64位平台上int占8个字节,PHP_INT_SIZE
  • 在32位平台上int的最大值2^31 - 1,在64位平台上int最大值2^63 - 1,PHP_INT_MAX。php中int不支持无符号

2.为什么在不同的平台上int类型所占字节数有差异呢

不管什么类型,编译型语言都会把源码编译成机器码,由于不同平台寄存器位宽不一样, 所以有了自己对int的规定, 导致int 这个数据类型比较特殊,具体分配的字节数与机器字长和编译器有关。但一般等于机器寄存器位宽(64位平台除外,默认为4字节),如在32位平台上(所谓32位平台是指通用寄存器的数据宽度是32)编写代码,int 类型分配4个字节,而在16位平台是则分配2个字节。编译器是把代码转换为机器码的软件,如果他愿意,可以把int转换为256位的,只不过会增加机器的复杂度,降低可移植性。

3.平台

个人把这三者合起来考虑(CPU+OS+Compiler)是因为:1、64位机器也可以装32位系统(x64装XP);2、32位机器上可以有16/32位的编译器(XP上有tc是16位的,其他常见的是32位的);3、即使是32位的编译器也可以弄出64位的integer来(int64)。以上这些是基于常见的wintel平台,加上我们可能很少机会接触的其它平台(其它的CPU和OS),所以个人认为所谓平台的概念是三者的组合。虽然三者的长度可以不一样,但显然相互配合(即长度相等,32位的CPU+32位的OS+32位的Compiler)发挥的能量最大。另外一个话题,如果只是从抽象的层面来看,每个程序有的只是虚拟的计算环境,可以不必考虑实际的环境,只需要了解虚拟环境的情况就可以了,这在不考虑移植性或者非底层编程的时候是很有帮助的,这样可以使你关注你的逻辑而不是实现

PHP 相关文章推荐
php Undefined index和Undefined variable的解决方法
Mar 27 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
May 29 PHP
php教程之phpize使用方法
Feb 12 PHP
php格式化金额函数分享
Feb 02 PHP
php跨服务器访问方法小结
May 12 PHP
PHP生成json和xml类型接口数据格式
May 17 PHP
php中smarty实现多模版网站的方法
Jun 11 PHP
PHP实现文件上传与下载实例与总结
Mar 13 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
PHP+jQuery实现即点即改功能示例
Feb 21 PHP
php tpl模板引擎定义与使用示例
Aug 09 PHP
PHP检测一个数组有没有定义的方法步骤
Jul 20 #PHP
PHP defined()函数的使用图文详解
Jul 20 #PHP
php实现 master-worker 守护多进程模式的实例代码
Jul 20 #PHP
PHP抽象类和接口用法实例详解
Jul 20 #PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
Jul 20 #PHP
Smarty模板语法详解
Jul 20 #PHP
Smarty模板变量与调节器实例详解
Jul 20 #PHP
You might like
用PHP读取RSS feed的代码
2008/08/01 PHP
php设计模式 Builder(建造者模式)
2011/06/26 PHP
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
js自定义事件及事件交互原理概述(二)
2013/02/01 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
p5.js绘制创意自画像
2019/11/04 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
python 操作mysql数据中fetchone()和fetchall()方式
2020/05/15 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
Python中常用的os操作汇总
2020/11/05 Python
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
大三学生入党思想汇报
2014/01/02 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
主题实践活动总结
2014/05/08 职场文书
大学生就业求职信
2014/06/12 职场文书
营业用房租赁协议书
2014/11/26 职场文书
维稳承诺书
2015/01/20 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript