摘要:概述该文章主要从内存空间上简述中引用变量的基本概念工作方式,以及一个常见的实例。概念什么是引用变量,在当中,用什么符号定义引用变量不同的名字访问同一个变量内容,使用表示。
概述
该文章主要从内存空间上简述PHP中引用变量的基本概念、工作方式,以及一个常见的demo实例。
概念
什么是引用变量,在PHP当中,用什么符号定义引用变量?
不同的名字访问同一个变量内容,使用&表示。
COW(copy on write)
内存优化的常见手段,在php中也采用了这种方式来优化内存。
写时复制,即只有当对其中一个或多个变量进行写操作的时候,才会复制一份内存,对其内容进行修改。
在PHP中使用memory_get_usage()观察内存变化演示
未使用&(引用变量)
$a = range(0,1000); var_dump(memory_get_usage()); $b = $a;` var_dump(memory_get_usage()); $a = range(0,1000); var_dump(memory_get_usage());
运行结果:
内存在第一次和第二次并没有太大的差异,第三次产生较大差异
使用 &
$a = range(0,1000); var_dump(memory_get_usage()); $b = &$a; var_dump(memory_get_usage()); $a = range(0,1000); var_dump(memory_get_usage());
运行结果:
在使用引用传值内存解析分析:
$a被赋值时在内存中占据A内存空间,$b=&$a 时$b指向同一内存空间,当$a发生改变时$b所占据的内存空间会跟随$a变化unset
unset() 只会取消引用不会销毁空间
$a=1; $b=&$a; unset($b); echo $a;
输出结果:1
内存空间分析:
$a被赋值 $b=&$a之后$a与$b直行同一内存空间,当unset($b)时取消了$b对$a的引用,使$b不在指向$a的内存空间题外话
对象本身就是引用传递
class Person { public $name="zhangsan"; } $p1 =new Person; xdebug_debug_zval("p1"); $p2 =$p1; xdebug_debug_zval("p1"); $p2->name="lisi"; xdebug_debug_zval("p1");
运行结果:
结果分析:
对象被实例后经引用传递之后$p1 $p2指向的始终是同一内存空间案例
$val) { $val = &$data[$key]; } var_dump($data);
写出如上程序的输出结果?
程序运行时,每一次循环结束后变量$data的值是什么?
程序执行完成后,变量$data的值是什么?
内存变化及解析:
感谢感谢你看到这里,希望本篇可以帮到你。有问题可在评论区留言,谢谢
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29405.html
摘要:本书的地址篇收集了一些常见的基础进阶面试题,基础的面试题不再作答。如何实现持久化持久化,将在内存中的的状态保存到硬盘中,相当于备份数据库状态。相当于备份数据库接收到的命令,所有被写入的命令都是以的协议格式来保存的。 本书的 GitHub 地址:https://github.com/todayqq/PH... PHP 篇收集了一些常见的基础、进阶面试题,基础的面试题不再作答。 基础篇 ...
摘要:基本配置文件和变量详解基本配置文件运行的用户进程数,建议设置为等于总核心数。允许客户端请求的最大单文件字节数。如果主体超过缓冲区大小,则完整主体或其一部分将写入临时文件。该指令在配置的,和区块使用。 Nginx基本配置文件和变量详解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx运行的用户 user nginx; # nginx进程数,建议设置为等于C...
摘要:基本配置文件和变量详解基本配置文件运行的用户进程数,建议设置为等于总核心数。允许客户端请求的最大单文件字节数。如果主体超过缓冲区大小,则完整主体或其一部分将写入临时文件。该指令在配置的,和区块使用。 Nginx基本配置文件和变量详解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx运行的用户 user nginx; # nginx进程数,建议设置为等于C...
阅读 2382·2021-09-22 15:41
阅读 1436·2021-08-19 10:54
阅读 1716·2019-08-23 15:11
阅读 3362·2019-08-23 10:23
阅读 1401·2019-08-22 16:28
阅读 782·2019-08-22 15:11
阅读 719·2019-08-22 14:53
阅读 689·2019-08-22 13:49