PHP 堆 栈 数据段 代码段 存储的理解

Posted wgchen~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 堆 栈 数据段 代码段 存储的理解相关的知识,希望对你有一定的参考价值。

阅读目录

对象在php里面和整型、浮点型一样,也是一种数据类,都是存储不同类型数据用的, 在运行的时候都要加载到内存中去用,那么对象在内存里面是怎么体现的呢?

内存从逻辑上说大体上是分为4段,栈空间段、堆空间段、代码段、初始化静态段,程序里面不同的声明放在不同的内存段里面。

1、数据段(data segment)通常是指用来存放程序中已初始化且不为0的全局变量如:静态变量和常量

2、代码段(code segment / text segment)通常是指用来存放程序执行代码的一块内存区域,比如函数和方法

3、栈空间段是存储占用相同空间长度并且占用空间小的数据类型的地方,比如说整型1,10,100,1000,10000,100000 等等,在内存里面占用空间是等长的,都是64 位4 个字节。

4、堆:那么数据长度不定长,而且占有空间很大的数据类型的数据放在那内存的那个段里面呢?这样的数据是放在堆内存里面的。

:基本数据类型、 局部变量、类的引用(指向堆空间段)

:new出来的对象

代码段:函数 运行的代码

数据段:字符串常量 全局变量 静态变量

以上是关于PHP 堆 栈 数据段 代码段 存储的理解的主要内容,如果未能解决你的问题,请参考以下文章

PHP面向对象

php内存空间存储问题

内存布局:栈,堆,BSS段(静态区),代码段,数据段

对象在类中的存储方式有哪些?

BSS段 data段 text段 堆heap 和 栈stack

PHP对象在内存中的分配