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过滤危险html代码的函数
Jul 22 PHP
PHP 函数语法介绍一
Jun 14 PHP
PHP 日常开发小技巧
Sep 23 PHP
PHP 解决utf-8和gb2312编码转换问题
Mar 18 PHP
PHP访问MYSQL数据库封装类(附函数说明)
Dec 04 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
Jan 11 PHP
浅谈PHP与C#的值类型指向区别的详解
May 21 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
Nov 12 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
Oct 19 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 PHP
laravel5.6实现数值转换
Oct 23 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 foreach 使用&amp;(与运算符)引用赋值要注意的问题
2010/02/16 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
PHP实现下载断点续传的方法
2014/11/12 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
js数组操作学习总结
2013/11/04 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
jquery如何扑捉回车键触发的事件
2014/04/24 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
Vue.js结合bootstrap实现分页控件
2017/03/10 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
2020/05/12 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
python实现class对象转换成json/字典的方法
2016/03/11 Python
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
Python实现仿射密码的思路详解
2020/04/23 Python
python全栈开发语法总结
2020/11/22 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
关于逃课的检讨书
2014/01/23 职场文书
公司年底活动方案
2014/08/17 职场文书
民族精神月活动总结
2014/08/28 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python
SpringBoot集成Redis的思路详解
2021/10/16 Redis