PHP对象赋值

作者: tinyPhper | 来源:发表于2017-03-19 21:36 被阅读0次

    PHP中传值赋值运算将变量的值拷贝到新的变量中,所以改变其中一个不会影响另外一个。普通的传值赋值行为中有个例外就是对象赋值。

    class SimpleClass{

    public $var='';

    }

    $instance=newSimpleClass();

    $assigned=$instance;

    $reference=&$instance;

    $instance->var='$assigned will have this value';

    $instance=null;// $instance and $reference become nullvar_dump($instance);

    var_dump($reference);

    var_dump($assigned);

    输出:

    NULL

    NULL

    object(SimpleClass)#1 (1) {["var"]=>string(30) "$assigned will have this value"}

    分析代码:

    $instance=newSimpleClass();//新建实例,$instance指向这个对象

    $assigned=$instance;//$assigned也指向$instance所指向的对象

    $reference=&$instance;//$reference指向$instance

    如图:

    $instance->var='$assigned will have this value';//给对象的var属性赋值

    $instance = null;//$instance指向空,而$assigned还指向对象

    参考:

    https://www.zhihu.com/question/35710455

    相关文章

      网友评论

        本文标题:PHP对象赋值

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