2.php引用变量

作者: 漏诺 | 来源:发表于2017-12-22 16:16 被阅读20次

    什么是引用变量?php中,用什么符号定义引用变量?

    在php中,引用意味着用不同的名字访问同一个变量的内容。

    定义方式,用&符号

    引用变量的工作原理(难点)

    //定义一个变量

    $a=range(0,1000);//$a开辟空间,并指向内存空间。range创建0-1000的数组。

    //定义一个变量b,将a变量的值赋给$b.

    $b=$a;//此时$b不会开辟空间,因为php有cow机制。$a与$b共享一个空间

    前2步内存使用cow机制,copy on write,$a与$b只要有修改操作,才会复制开辟空间,现在$a与$b没有改变,不能copy,只是多了$b指向$a的空间,不是新开辟空间。什么时候开辟新空间呢?如下:对$a进行写操作,会开辟新空间。

    $a=range(0,1000);//重新开辟空间,值没有变,只是进行写操作,所以开辟新空间。

    使用merory_get_usage()看内存使用空间

    ?>

    $a=range(0,1000);//$a开辟空间

    $b=&$a;//$b不会开辟空间

    $a=range(0,1000);//不会重新开辟空间,因为这里有引用,引用就是,a,b指向同一空间,没有cow机制。

    ?>

    unset只会取消引用,不会销毁空间

    对象本身就是引用传递

    引用变量需要注意的4点问题

    1.只有变量才有地址,也就是只有变量才能引用

    2.一个变量发生变化,另一个变量的值也发生变化

    3.在使用unset()函数时,如果有引用关系,只是解除了这种引用关系,只删除一个名字,另一个还在

    4.如果两个变量是引用关系,一个变,另一个也变,但如果给其中一个引用,不是普通的值,而是一个新的引用,则改变引用关系

    相关文章

      网友评论

        本文标题:2.php引用变量

        本文链接:https://www.haomeiwen.com/subject/cghxgxtx.html