zoukankan      html  css  js  c++  java
  • php 引用

    在PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。在 PHP 中引用意味着用不同的名字访问同一个变量内容。

    例子1:

    $a = "dfgh"; 

    $b =& $a; 

    echo $b.$a; 

    这意味着 $a 和 $b 指向了同一个变量。同一个变量内容有不同的变量名

    函数的引用传递(传址调用):

    function test(&$a)

      $a = $a+100;  

    }

    $b = 1;  

    test($b); 

    echo $b; //101

    函数 test() 直接拿变量的地址作为参数……然后将变量的值+100. test($b) 这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值就可以改变$b的值了。

    看下面的例子

    $a = 111;
    $b = 222;
    function cz(& $a,$b){
    $a += $b;
    $b += 4;
    }
    cz($a,$b);
    echo '$a='.$a;
    echo '$b='.$b;
    这段代码,首先在函数cz外定义了两个变量$a和$b,然后在函数cz内,对两个变量进行了相应的操作,再调用函数cz,最后将$a和$b输入。我们都知道函数的作用域问题,在函数内部修改的值,只能在函数内部反应出来,在函数外是不能得不到这种变化的。现在我们看下这个这段代码输出的结果
    $a=333;
    $b=222;

    $b的值和预期的相同,输出的是222,但是$a的值却发生了变化,这是因为在函数的参数前多了一个“&”的原因,正是因为这个符号,所以让$a能够得到在函数cz内的变化,所以$a的值才会发生改变。所以按值传递和按引用传递的区别就在这里了,如果想将一个变量在函数内修改的值作用到函数外的变量上时,只需要在相应的参数前面加上“&”就可以了。

     
     
  • 相关阅读:
    在mysql中计算百分比
    给指定的div增加滚动条
    Java高效编程之三【类和接口】
    Linux(CentOS) 如何查看当前占用CPU或内存最多的K个进程
    MapReduce:详解Shuffle过程
    Java高效编程之二【对所有对象都通用的方法】
    Java高效编程之一【创建和销毁对象】
    ANT命令总结(转载)
    linux 压缩文件的命令总结
    Cloudera CDH 、Impala本地通过Parcel安装配置详解
  • 原文地址:https://www.cnblogs.com/tianbo16/p/6907770.html
Copyright © 2011-2022 走看看