1.内存结构:

  栈区:保存变量名,对CPU,读写速度很快

  堆区:保存复杂的数据结构,想对象,数组,复杂的字符串等、

  数据段:数据段分为数据段全局区(简单的数据,整型和布尔类型)和数据段静态区(存储静态变量、常量)

  代码区:存储源代码对应的机器码

  输出缓存区:只要遇到输出命令,数据就会输出到这个区域

2.php 执行过程

编译阶段:进行语法的检查,代码的优化,编译通过后,将源代码转换为机器指令

执行阶段:编译通过后,会将源代码对应的机器指令保存在代码区,再开始执行代码中的机器指令

遇到输出指令,再缓存在代码的输出缓存区

3.php 中变量的传值方式

php中变量的传值方式主要有2种:

1)赋值传值

  使用一个变量a为另一个变量b赋值时,传递的是变量a的值,这种传值方式叫做赋值传值 

 <?php
$a = 12;
$b = $a;
echo $a;

2)引用传值

  使用变量a为变量b赋值时,传递的是变量a的地址,这种传值方式叫做引用传值

 

4.php 在变量的存储方式:

请阅读:https://www.cnblogs.com/orlion/p/4980641.html

php 内存原理的更多相关文章

  1. 【腾讯优测干货分享】如何降低App的待机内存(四)——进阶:内存原理

    本文来自于腾讯优测公众号(wxutest),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/3FTPFvZRqyAQnU047kmWJQ 1.4进阶:内存原理 在 ...

  2. 内存分析_.Net内存原理介绍

    内存原理介绍 1.       .Net应用程序中的内存 1.1.Net内存类型 Windows使用一个系统:虚拟寻址系统.这个系统的作用是将程序可用的内存地址映射到硬件内存中的实际地址上.其实际结果 ...

  3. 18.Java基础_关键字this及其内存原理

    this使用 this的内存原理 执行函数setName时,首先是创建函数栈空间,然后创建形参name,除此之外还会有一个this(实质是堆内存中对象的首地址),这个this会索引对象的成员变量nam ...

  4. 几个系统调用分析 glibc中的malloc调用和共享内存原理

    本文主要分析内存以及I/O相关的系统调用和库函数的实现原理,根据原理给出在使用过程中需要注意的问题和优化的侧重点,本文涉及到的系统调用包括readahead,pread/pwrite,read/wri ...

  5. 深入解析内存原理:RAM的基本原理

    1. 寻址原理概述RAM 主要的作用就是存储代码和数据供CPU 在需要的时候调用.但是这些数据并不是像用袋子盛米那么简单,更像是图书馆中用有格子的书架存放书籍一样,不但要放进去还要能够在需要的时候准确 ...

  6. c语言内存原理

    1.内存寻址由大到小,优先分配内存地址比较大得字节给变量 2.变量越先定义,内存地址就越大 3.取得变量的地址:&变量名 4.输出地址  %p

  7. window内存管理与内存原理

    转自: http://blog.csdn.net/iamfranter/article/details/6826270 WIndows为每个进程分配了4GB的虚拟地址空间,让每个进程都认为自己拥有4G ...

  8. Windows内存原理与内存管理

    WIndows为每个进程分配了4GB的虚拟地址空间,让每个进程都认为自己拥有4GB的内存空间,4GB怎么来的? 32位 CPU可以取地址的空间为2的32次方,就是4GB(正如16位CPU有20根寻址线 ...

  9. 深入解析内存原理:DRAM的基本原理

    前面我们知道了在一个简单的SRAM 芯片中进行读写操作的步骤了,然后我们来了解一下普通的DRAM 芯片的工作情况.DRAM 相对于SRAM 来说更加复杂,因为在DRAM存储数据的过程中需要对于存储的信 ...

  10. c++中共享内存原理及实现

    共享内存 (也叫内存映射文件) 主要是通过映射机制实现的 , Windows 下进程的地址空间在逻辑上是相互隔离的 , 但在物理上却是重叠的 ; 所谓的重叠是指同一块内存区域可能被多个进程同时使用 , ...

随机推荐

  1. $\LaTeX$数学公式大全1

    $1\ Geek\ and\ Hebrew\ letters$$\alpha$ \alpha$\beta$ \beta$\chi$ \chi$\delta$ \delta$\epsilon$ \eps ...

  2. svn 双备份

    svn备份的方式有三种: 1svnadmin dump 2)svnadmin hotcopy 3)svnsync.  优缺点分析============== 第一种svnadmin dump是官方推荐 ...

  3. js 原型链、构造函数、原型与实例之间的关系

    面向对象编程都会涉及到继承这个概念,JS中实现继承的方式主要是通过原型链的方法. 一.构造函数.原型与实例之间的关系 每创建一个函数,该函数就会自动带有一个 prototype 属性.该属性是个指针, ...

  4. 石川es6课程---7、数组

    石川es6课程---7.数组 一.总结 一句话总结: ^ 主要就map(映射:一个对一个),reduce(汇总:一堆出来一个),filter  过滤器,forEach 循环(迭代) 四个方法 ^ 使用 ...

  5. mysql使用命令行执行存储过程

    编写存储过程sql 以给brand表添加phone字段为例: DROP PROCEDURE IF EXISTS UpdateColum; CREATE PROCEDURE UpdateColum() ...

  6. ZOJ - 1586 QS Network (Prim)

    ZOJ - 1586 QS Network (Prim) #include<iostream> #include<cstring> using namespace std; + ...

  7. java用Annotation注入到成员Bean对象

    java用Annotation注入到成员Bean对象 在使用一些java框架的时候,经常看到一些注解,而且使用注解之后就可以免去一些xml的繁琐配置,本文记录如何通过注解获得成员Bean对象. 一.首 ...

  8. Oracle 必要的后台进程

    Oracle 必要的后台进程 Table of Contents 1. 简述 2. 必要进程 2.1. 默认启动后台进程 2.2. 哪些进程不能杀 1 简述 oralce 每次大的版本变更,后台进程都 ...

  9. Leaflet - 实现按照路径方向旋转的 Marker

    在每帧动画时设置 Marker 的 transform 属性就行,zjffun/Leaflet.MovingMarker at zjf/feature-rotate 我在这个 Fork 中实现了一下. ...

  10. Helm chart仓库官方仓库不能使用解决方法

    Helm chart仓库官方仓库不能使用解决方法 k8s中的官方helm chart仓库在国内可能使用不了,但是我们又需要使用,这里推荐几个方法. 使用其他的chart仓库 微软的chart仓库 ht ...