zoukankan      html  css  js  c++  java
  • php引用&使用笔记

    引用与赋值是两个概念:引用是共用同一个内存地址,一个改变其他也会变,赋值是另外开辟内存空间,一个改变其他不会变

    一个简单例子:

    $a=123;     //$a开辟一个内存空间存储123
    $b=&$a;     //$b通过&引用$a的内存地址,所以是两者指向同一个地方
    var_dump($b);      //此时$b打印的值为123
    $b=567;     //当$b的值改变成567时,此时$a和$b共同指向的内存地址的值改变成567
    var_dump($a);   //所以$a打印的值为567
    

      

    更深入的引入例子:

    $data=['a','b','c'];
    foreach($data as $k=> $v){
        $v = &$data[$k];
        var_dump($data);
    }
    var_dump($data);  

    解答思路:

      (1)首先第一次循环在未进入循环体时$v是指向一个内存地址,进入循环体后$data[0]是指向另一个内存地址,经过引用后$v引入了$data[0]的内存地址

      输出a,b,c

      (2)然后第二次在未进入循环体执行foreach这行代码时,$v的值为b,所以导致$data[0]变成了b

        进入循环体后$v引用了data[1]的内存地址

        

      输出b,b,c

      (3)同理第三次在未进入循环体执行foreach这行代码时,$v的值为c,所以导致$data[1]变成了c,进入循环体后$v引用$data[2]的内存地址

      输出b,b,c

    所以整个流程的输出结果为:

  • 相关阅读:
    108.Convert Sorted Array to Binary Search Tree
    111.Minimum Depth of Binary Tree
    118.Pascal's Triangle
    122.Best Time to Buy and Sell Stock II
    35.搜索插入位置
    OSI参考模型
    虚拟机访问tomcat
    linux输入ifconfig找不到IP的解决办法
    分层协议、协议、接口、服务
    Spring Boot项目的创建
  • 原文地址:https://www.cnblogs.com/legendheng/p/9132698.html
Copyright © 2011-2022 走看看