对象在PHP里面和整型、浮点型一样,也是一种数据类,都是存储不同类型数据用的, 在运行的时候都要加载到内存中去用,那么对象在内存里面是怎么体现的呢?
内存从逻辑上说大体上是分为4段,栈空间段、堆空间段、代码段、初始化静态段,程序里面不同的声明放在不同的内存段里面。
1、数据段(data segment)通常是指用来存放程序中已初始化且不为0的全局变量如:静态变量和常量
2、代码段(code segment / text segment)通常是指用来存放程序执行代码的一块内存区域,比如函数和方法
3、栈空间段是存储占用相同空间长度并且占用空间小的数据类型的地方,比如说整型1,10,100,1000,10000,100000 等等,在内存里面占用空间是等长的,都是64 位4 个字节。
4、堆:那么数据长度不定长,而且占有空间很大的数据类型的数据放在那内存的那个段里面呢?这样的数据是放在堆内存里面的。
栈:基本数据类型、 局部变量、类的引用(指向堆空间段)
堆:new出来的对象
代码段:函数 运行的代码
数据段:字符串常量 全局变量 静态变量