数据段(data segment)
常日是指用来存放程序中已初始化且不为0的全局变量如:静态变量和常量
代码段(code segment / text segment)
常日是指用来存放程序实行代码的一块内存区域,比如函数和方法;
栈空间段
是存储占用相同空间长度并且占用空间小的数据类型的地方,比如说整型1,10,100,1000,10000,100000 等等,在内存里面占用空间是等长的,都是64 位4 个字节。堆内存 数据长度不定长,而且霸占空间很大的数据类型的数据
堆内存
数据长度不定长,而且霸占空间很大的数据类型的数据存放位置
php工具在内存中存在哪里呢?
工具在PHP 里面和整型、浮点型一样,也是一种数据类,都是存储不同类型数据用的, 在运行的时候都要加载到内存中去用,那么工具在内存里面是怎么表示的呢?这样的数据是放在堆内存里面的。
各种型在内存存储逻辑图如下:
栈内存是可以直接存取的,而堆内存是不可以直接存取的内存。
工具是放在堆里面的,但工具名称是放在栈里面的
$p1 = new Person();$p2 = new Person();$p3 = new Person();
$p1, $p2,$p3便是我们实例出来的工具名称,一个类可以实例出多个工具,每个工具都是独立的。
从上图可以看出:
(1)$p1=new Person();等号右边是真正的工具实例,在堆内存里面的实体
(2)一共有3 次new Person(),以是会在堆里面开辟3 个空间,产生3 个实例工具,每个工具之间都是相互独立的,利用自己的空间。
(3)在PHP 里面,只要有一个new 这个关键字涌现就会 实例化出来一个工具,在堆里面开辟一块自己的空间。
(4)每个在堆里面的实例工具是存储属性的,比如说,现在堆里面的实例工具里面都存有姓 名、性别和年事。每个属性又都有一个地址。
(5)$p1=new Person();等号的右边$p1 是一个引用变量,通过赋值运算符“=”把工具的首地址 赋给“$p1”这个引用变量,以是$p1 是存储工具首地址的变量,$p1 放在栈内存里边,$p1 相称 于一个指针指向堆里面的工具,以是我们可以通过$p1 这个引用变量来操为难刁难象。
php7进阶到架构师干系阅读php7进阶到架构师干系阅读
https://www.kancloud.cn/gofor/gofor