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一个变量定义的时候应该就在内存中开辟了一块空间吧.没有c那样可以使用malloc alloc realloc隐士分配内存.
靠,你不搞懂这个问题怎么学java啊,
堆里存的是new了以后才分配堆里的内存空间,
如果只声明一个对象,是不给他它分配堆内存的
堆里存的是已经实例化的对象;

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

Dreamweaver Mac版
시각적 웹 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
