当前位置:Gxlcms > PHP教程 > php的传值和引用讲解

php的传值和引用讲解

时间:2021-07-01 10:21:17 帮助过:41人阅读

本文主要和大家分享php的传值和引用讲解,主要以文字的形式和大家分享,希望能帮助到大家。

介绍:

每个php变量存在一个叫"zval"的变量容器中。一个zval变量容器,除了包含变量的类型和值,还包括两个字节的额外信息。第一个是"is_ref",是个bool值,用来标识这个变量是否是属于引用集合(referenceset)。通过这个字节,php引擎才能把普通变量和引用变量区分开来,由于php允许用户通过使用&来使用自定义引用,zval变量容器中还有一个内部引用计数机制,来优化内存使用。第二个字节是"refcount",用以表示指向这个zval变量容器的变量(也称符号即symbol)个数。当"refcount"的值是1时,”is_ref”的值总是FALSE.

例:

<?php$a = 10;
//将常量值赋给变量,会为a分配内存空间$b = $a;
//变量赋值给变量,给b分配了内存空间,并将a变量的类型和值复制一份存储到b的存储空间 $c = &$a;
//引用是不会为c分配空间的,c和a是共用一份内存空间数据。

PHP中将一个变量赋值给新变量时,不会立即为新变量分配内存空间,只是增加了对内存空间的引用。当原变量或者新变量作出任何改变时,才会为新变量 分配一块内存空间。

相关推荐:

php函数普通传值与引用传值有什么区别

以上就是php的传值和引用讲解的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行