b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

PHP内存的对象在内存里面是怎么体现的呢?

电脑杂谈  发布时间:2021-03-12 07:01:57  来源:网络整理

在PHP中,对象与整数和浮点类型相同。它们也是一种数据。它们用于存储不同类型的数据。

在运行时,必须将其加载到内存中以供使用,那么对象如何反映在内存中?

从逻辑上讲,内存大致分为4个段:

堆栈空间段,堆空间段,代码段,初始化静态段

程序中的不同声明放置在不同的内存段中

数据段:

它是指已在程序中初始化但不为0的全局变量,例如静态变量和常量;

代码段(代码段/文本段):

指用于存储程序执行代码(例如函数和方法)的存储区;

堆栈空间段:

这里是存储占据相同空间长度和较小空间的数据类型的地方,例如整数1、10、100、1000、10000、100000等,

存储器中占用的空间长度相等,全部为64位和4个字节。然后数据长度是可变的

占用大量空间的数据类型的数据在哪个内存段中?这些数据存储在堆内存中。

如下所示:

php内存模型

可以直接访问堆栈内存,而堆内存是不能直接访问的内存。

对于我们的对象,它是一个大型数据类型,并且占用的空间长度是可变的,因此该对象被放置在堆中,

但是将对象名称放置在堆栈中,以便该对象名称可以使用该对象。

$ p1是我们实例化的对象的名称。同样,$ p2和$ p3也是我们实例化的对象的名称。

一个类可以实例化多个对象,并且每个对象都是独立的。上面的代码等效于一个3个人的实例。

每个人之间没有联系,只能表示他们都是人类,每个人都有自己的姓名,性别和年龄属性,

每个人都有说话和走路的方式,只要成员属性和成员方法反映在类中,

这些属性和方法包含在实例化的对象中。

$p1=new Person();

对于这段代码,$ p1是堆栈存储器中对象的名称。 New Person()是堆内存中的实际对象。有关详细信息,请参见下图:

php内存模型

从上图中,我们可以看到$ p1 = new Person();。等号的右侧是实对象实例,即堆内存中的实体,

上图中有3次new Person(),因此将在堆中打开3个空间,并生成3个实例对象。

每个对象在PHP中使用其自己的空间彼此独立

只要出现一个新关键字,就会实例化一个对象,并在堆中打开一个自己的空间。

堆中的每个实例对象都存储属性。例如,名称,性别和年龄存储在堆中的实例对象中。

每个属性都有一个地址。 $ p1 = new Person();等号右侧的$ p1是参考变量,

通过赋值运算符“ =”,将对象的第一个地址分配给引用变量“ $ p1”

因此,$ p1是存储对象的第一个地址的变量,$ p1被放置在堆栈存储器中,$ p1等效于指向堆中对象的指针,

因此,我们可以通过引用变量$ p1操作对象,通常我们也将对象引用称为对象。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-363957-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 周宣帝宇文赟
        周宣帝宇文赟

        那些钱被谁拿走了呢

      • 张群显
        张群显

        24小时不间断巡航南海岛礁

      • 王宇豪
        王宇豪

        是个男人就不会像这样的想法

      热点图片
      拼命载入中...