Home >php教程 >php手册 >PHP对象类型在内存中的分配,php对象类型分配

PHP对象类型在内存中的分配,php对象类型分配

WBOY
WBOYOriginal
2016-06-13 09:27:201066browse

PHP对象类型在内存中的分配,php对象类型分配

对象类型和整型、字符串等类型一样,也是PHP中的一种数据类型。都是在程序中用于存储不同类型数据使用的,在程序运行时它的每部分内容都要先加载到内存中再被使用。那么对象类型的数据在内存中是如何分配的呢?先来了解一下内存结构。逻辑上内存大体被分为四段,分别为栈空间段、堆空间段、初始化数据段和代码段,程序中不同类型数据的声明将会被存在不同的内存段里面。每段内存的特点如下。
①.栈空间段
栈的特点是空间小但被CPU访问的速度快,是用户存放程序中临时创建的变量。由于栈的后进先出特点,所以栈特别方便用来保存和恢复调用现场。从这个意义上讲,我们可以把堆栈看成一个临时数据寄存、交换的内存区。用于存储占用空间长度不变并且占用空间小的数据类型的内存段,例如整型1、100、10000等在内存中占用空间是等长的,占用空间都是32位的4个字节。还有double、boolean等都可以存储在栈空间段中。
②.堆空间段
堆是用于存放进程运行中被动态分配的内存段,它大小并不固定,可动态扩张或缩减。用于存储数据长度可变或占用内存比较大的数据。例如,字符串、数组和对象就存储在这段内存中。
③.数据段
数据段用来存放可执行文件中初始化全局变量,换句话说就是存放程序静态分配的变量。
④.代码段
代码段是用来存放可执行文件的操作指令,也就是说它是可执行程序在内存中的镜像。代码段需要防止在运行时被非法修改,所以只准许读取操作,而不允许写入(修改)操作。例如程序中的函数就存储在这段内存中。
对象类型的数据就是一种占用空间比较大的数据类型,并且是占用的空间不定长的数据类型,所以对象创建完成以后被存放在对内存中,但对象的引用还是存放在栈里面的。程序在运行时,占内存中的数据是可以直接存取的,而堆内存是不可以直接存取的内存,但可以通过对象的引用名称访问对象中的成员。

 

>> 本文固定链接: http://php.ncong.com/php_course/oop/duixiangfenpei.html

>> 转载请注明: 恩聪php 2014年07月23日 于 恩聪PHP学习教程 发表

php 怎分配内存 - PHP进阶讨论

php都是显式内存分配,没有隐式分配内存的方法吧.对于php一个变量定义的时候应该就在内存中开辟了一块空间吧.没有c那样可以使用malloc alloc realloc隐士分配内存.
 

java中当对象类型做为实参时,在哪分配内存空间

靠,你不搞懂这个问题怎么学java啊,

堆里存的是new了以后才分配堆里的内存空间,

如果只声明一个对象,是不给他它分配堆内存的

堆里存的是已经实例化的对象;
 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn