什么是php引用变量?PHP中引用是如何实现

什么是php引用变量?PHP中引用是如何实现

内容导读

收集整理的这篇技术教程文章主要介绍了什么是php引用变量?PHP中引用是如何实现,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1418字,纯文字阅读大概需要3分钟

内容图文

这篇文章给大家介绍的内容是关于 什么是php引用变量?PHP中引用是如何实现,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

概念:

引用:在PHP中,不同的变量名字访问同一个变量的内容,成为引用,用&符号表示。

引用工作原理:

(1)PHP在内存中存储的原理:

<?php

$a = range(1, 100);

$b = $a; ?>

因为PHP中存在COW(Copy On Write)机制,所以

a; 以上代码在内存中可表示为下图:

只有当对

a的存储,此时会重新开辟一个空间;这就是PHP的COW机制。即:

<?php

$a = range(1, 100);


 $b = $a;



$a = range(1, 100);?>

这样虽然没有改变

a。可以用PHP函数 memory_get_usage() 查看内存使用情况用以证明。

(2)PHP中引用的实现原理

<?php

$a = range(1, 100);



$b = &$a;?>

此时因为有引用(&),则在内存中

a最开始分配的内存,并且是不会改变的,此时

然后如果此时改变$a的值:

<?php

$a = range(1, 100);

memory_get_usage();



$b = &$a;

memory_get_usage();



$a = range(1,1000);

memory_get_usage();?>


可以看到内存中不会重新开辟一块空间,因为引用是将这块地址永远的分配给了

b,所以改变

a和$b的值都会改变。也可用memory_get_usage()函数进行查看。

(3)PHP中的zval结构体(变量容器)

我们知道PHP中的变量都是存储在zval结构体中的,引用也可以通过查看zval结构体中的存储情况去查看。

<?php

$a = range(1, 100);

xdebug_debug_zval('a');



$b = &$a;?>

在使用xdebug_debug_zval();函数需要安装PHP的xdebug扩展。

相关文章推荐:

php7和php5有什么不同之处?php5与php7之间的对比

PHP中时间函数strtotime() 函数的原理讲解

以上就是什么是php引用变量?PHP中引用是如何实现的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的什么是php引用变量?PHP中引用是如何实现全部内容,希望文章能够帮你解决什么是php引用变量?PHP中引用是如何实现所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。



联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com