PHP: 关于引用

@ 2011-01-06 12:13:05
标签:

    引用主要有两个作用:

    • 用来改变源数据
    • 节省内存复制的开销

    对于需要改变源数据的情况,通常不会有太大问题,只要在传递参数的时候在变量前面加上一个 '&' 号就可以了。比如:

    $v = 123;
    
    function f_t(&$r){ $r++; }
    
    f_t($v);
    echo $v; // 此时 $v = 124
    

    另外很多时候,我们想起引用,是因为我们想节省变量复制(内存复制)的开销。比如:

    $s = str_repeat('x', 1024*1024); // 1 MByte
    
    function f_t($s){
      return preg_match('/\d+/', $s);
    }
    

    因为函数 f_t没有使用按引用传递,我们担心字符串$s是不是被复制了一次。事实上,这种担心可能是多余的。因为PHP也采用了类似与 COW(Copy on Write)的技术。

    参考资源

    标签:

      分享到:
      comments powered by Disqus

      42/51ms