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 相关文章推荐
使用NetBeans + Xdebug调试PHP程序的方法
Apr 12 PHP
PHP应用JSON技巧讲解
Feb 03 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
Mar 27 PHP
PHP中Session可能会引起并发问题
Jun 26 PHP
php计算税后工资的方法
Jul 28 PHP
WordPress中获取指定分类及其子分类下的文章数目
Dec 31 PHP
php无限级分类实现方法分析
Oct 19 PHP
Zend Framework动作控制器用法示例
Dec 09 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
Aug 02 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 PHP
php 函数中静态变量使用的问题实例分析
Mar 05 PHP
基于PHP+mysql实现新闻发布系统的开发
Aug 06 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
模仿OSO的论坛(三)
2006/10/09 PHP
MySQL相关说明
2007/01/15 PHP
用PHP与XML联手进行网站编程代码实例
2008/07/10 PHP
php中的数组操作函数整理
2008/08/18 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
php中的动态调用实例分析
2015/01/07 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
为数据添加append,remove功能
2006/10/03 Javascript
简单的JS多重继承示例
2008/03/13 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
2017/03/17 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
Vue路由前后端设计总结
2019/08/06 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
python处理xml文件的方法小结
2017/05/02 Python
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
解决python flask中config配置管理的问题
2019/07/26 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
移动通信专业自荐信范文
2013/11/12 职场文书
社会实践感言
2014/01/25 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis