zoukankan      html  css  js  c++  java
  • php中赋值和引用真真的理解

      php的引用(就是在变量或者函数、对象等前面加上&符号) //最重要就是 删除引用的变量 ,只是引用的变量访问不了,但是内容并没有销毁 在PHP 中引用的意思是:不同的名字访问同一个变量内容.

    变量赋值和引用
           
    PHP 的引用允许你用两个变量来指向同一个内容 

    复制代码
     
    <?php
    $instance = 1;
    $assignment = $instance;
    $quote =& $instance;
    echo $instance;//这里输出:1
    echo $assignment;//这里输出:1
    echo $quote;//这里输出:1
    $instance=2;
    echo $instance;//这里输出:2
    echo $assignment;//这里输出:1
    echo $quote;//这里输出:2
    ?>
    复制代码

    对象的赋值和引用

    复制代码

    <?php

    $instance = new StdClass();

    $assigned = $instance;
    $reference =& $instance;

    $instance->var = 'test';

    var_dump($instance);/*object(stdClass)[1]
    public 'var' => string 'test' (length=4)
    */
    var_dump($reference);/*object(stdClass)[1]
    public 'var' => string 'test' (length=4)
    */
    var_dump($assigned);/*object(stdClass)[1]
    public 'var' => string 'test' (length=4)
    */

    $assigned->var = 'test1';

    var_dump($instance);/*object(stdClass)[1]
    public 'var' => string 'test1' (length=4)
    */
    var_dump($reference);/*object(stdClass)[1]
    public 'var' => string 'test1' (length=4)
    */
    var_dump($assigned);/*object(stdClass)[1]
    public 'var' => string 'test1' (length=4)
    */

    $instance = null;// $instance and $reference become null

    var_dump($instance); // null
    var_dump($reference);//null
    var_dump($assigned);/*object(stdClass)[1]
    public 'var' => string 'test1' (length=4)
    */
    ?>

    复制代码

          以上代码是在php5.5中运行的效果,在php5中赋值是通过引用来实现的。通俗的讲 如果有下面的代码 $a="abc"; $b=$a;  其实此时 $a与$b都是指向同一内存地址,而并不是$a与$b占用不同的内存。如果在上面的代码基础上再加上如下代码  $a="efg";  由于$a与$b所指向的内存的数据要重新写一次了,此时Zend核心会自动判断 自动为$b生产一个$a的数据拷贝,重新申请一块内存进行存储

  • 相关阅读:
    shipyard-----------docker容器的可视化管理
    dockerfile制作镜像
    docker容器ip地址的设定
    docker镜像文件的安装和容器的操作
    Docker网络模式
    docker整体了解
    spring的aop学习(1)
    SqlSessionFactory的创建过程
    spring+springMVC+Maven+mysql环境搭建
    dubbo入门示例
  • 原文地址:https://www.cnblogs.com/huixuexidezhu/p/7223443.html
Copyright © 2011-2022 走看看