没懂那function pageDocumentEdit(&$html)和function pageDocumentEdit($html)定义的函数,会有什么区别?

解决方案 »

  1.   

    function funcA($str)
    {
      $str = 'hello';
    }
    function funcB(&$str)
    {
      $str = 'hello';
    }$tmp = '';funcA($tmp);
    echo $tmp; //结果为空funcB($tmp);
    echo $tmp; //结果为hello
      

  2.   

    明白一些了那实例化对象时候:
    $conf = &new themeConfig(); 和 $conf = new themeConfig(); 有什么不同?
      

  3.   

    function pageDocumentEdit(&$html) 这句中的引用,怎么理解?
    1、可以在函数里修改参数$html的原内容,但这里并没有这样做
    2、通过引用来节省内存$conf = &new themeConfig(); 和 $conf = new themeConfig(); 有什么不同?
    没有什么不同,new 总是返回类的实例化对象的引用
      

  4.   

    手册中的一段话:“new”默认并不返回引用,而返回一个拷贝。 注: 在返回拷贝而不是引用中并没有性能上的损失(因为 PHP 4 及以上版本使用了引用计数)。相反更多情况下工作于拷贝而不是引用上更好,因为建立引用需要一些时间而建立拷贝实际上不花时间(除非它们都不是大的数组或对象,而其中之一跟着另一个变,那使用引用来同时修改它们会更聪明一些)。 
      

  5.   

    你不用去记那些复杂的概念,就记得php里面的引用就是起个别名。而不是c++的指针!$a = &$b;
    只是给$a起了个别名,无论if($a == $b) or if($a === $b) or 他们在内存中储存的地址都是一样的。在函数内如你的pageDocumentEdit(&$html)中,$html这个变量被传进去后进行的一切运算都会另$html的值改变。这样做的话你可以不用返回一个值了。比如pageDocumentEdit( &$html ){
         $html.=$html."ef";
    }$html = "abcd";
    pageDocumentEdit( $html );
    echo $html;-----------------------------------------------------------
    输出:abcdef,而函数里面不需要你return $html另函数返回一个字符串来赋给某个变量了
    这样做的好处:我们可以不必为了一个变量而创建多个副本来占用系统资源。
      

  6.   

    引用就是指针。当初有个人开发了一个叫java的软件,以除掉了指针做为卖点。最后发现指针是必不可少的,又不好意思拉下面子改回去,于是换了个名字和写法叫引用。虽然程序变得比指针更容易出错和难理解,但流行就是一切,于是现在指针都变成引用了。
      

  7.   

    function($a)-----传入是和你一样的充气娃娃,扎一下娃娃破了,你没事
    function(&$a)-----传入的是你本人,扎一下,你流血了
      

  8.   

    如果是这种写法的引用呢:怎么理解?function &pageDocumentEdit($html)怎么理解?
      

  9.   

    "引用就是指针。"?!
    No
    php中的引用可不是c或c++中的指针
      

  10.   

    function &pageDocumentEdit($html)怎么理解?
      

  11.   

    function &pageDocumentEdit($html)怎么理解?
      

  12.   

    【quote】引用就是指针。【/quote】php中的引用跟c++的指针还是不同的。<?php
    $a = 1;
    $b =& $a;
    unset($a);
    ?>  不会 unset $b,只是 $a。
    如果是c++的指针的话,就会把$b也unset。【quote】function &pageDocumentEdit($html)【/quote】假如函数原型为
    function &pageDocumentEdit($html){
         $html .= 'abc';
         return $html;
    }$a = &pageDocumentEdit($html);
    这个可以理解为:给$a起个别名,$a的别名就是pageDocumentEdit($html);
      

  13.   

    不会用引用就别用,Zend会优化的
      

  14.   

    void *p=a;
    unset(p)的话a是不会unset的好不好。指针只不过功能比引用强大一些。
    引用就是指针的一部分功能拆出来的。
      

  15.   

    引用就是指针。当初有个人开发了一个叫java的软件,以除掉了指针做为卖点。最后发现指针是必不可少的,又不好意思拉下面子改回去,于是换了个名字和写法叫引用。虽然程序变得比指针更容易出错和难理解,但流行就是一切,于是现在指针都变成引用了。
    --------------------------------------------------------
    引用不是来自java,
    c++至少从blorand c++ 3.0 的时候就有引用了(应该更早)