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获得当前的脚本网址
Dec 10 PHP
php csv操作类代码
Dec 14 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
Oct 31 PHP
浅谈php serialize()与unserialize()的用法
Jun 05 PHP
PHP图片库imagemagick安装方法
Sep 23 PHP
php检查字符串中是否包含7位GSM字符的方法
Mar 17 PHP
php实现有趣的人品测试程序实例
Jun 08 PHP
PHP数组操作类实例
Jul 11 PHP
php实现可运算的验证码
Nov 10 PHP
php验证身份证号码正确性的函数
Jul 20 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
Oct 25 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之第二天
2006/10/09 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
php 类中的常量、静态属性、非静态属性的区别
2017/04/09 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
js select常用操作控制代码
2010/03/16 Javascript
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
关于js拖拽上传 [一个拖拽上传修改头像的流程]
2011/07/13 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
JavaScript常见鼠标事件与用法分析
2019/01/03 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
2020/08/19 Javascript
openlayers实现图标拖动获取坐标
2020/09/25 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
在Python中使用Neo4j的方法
2019/03/14 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
python实现xml转json文件的示例代码
2020/12/30 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
传播学专业毕业生自荐信
2013/11/04 职场文书
管事部库房保管员岗位职责
2014/02/21 职场文书
工程承包协议书
2014/04/22 职场文书
公共场所标语
2014/06/30 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
旷课检讨书范文
2014/10/30 职场文书
立春观后感
2015/06/18 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js