关于php的引用,怎么理解。。 没懂那function pageDocumentEdit(&$html)和function pageDocumentEdit($html)定义的函数,会有什么区别? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function funcA($str){ $str = 'hello';}function funcB(&$str){ $str = 'hello';}$tmp = '';funcA($tmp);echo $tmp; //结果为空funcB($tmp);echo $tmp; //结果为hello 明白一些了那实例化对象时候:$conf = &new themeConfig(); 和 $conf = new themeConfig(); 有什么不同? function pageDocumentEdit(&$html) 这句中的引用,怎么理解?1、可以在函数里修改参数$html的原内容,但这里并没有这样做2、通过引用来节省内存$conf = &new themeConfig(); 和 $conf = new themeConfig(); 有什么不同?没有什么不同,new 总是返回类的实例化对象的引用 手册中的一段话:“new”默认并不返回引用,而返回一个拷贝。 注: 在返回拷贝而不是引用中并没有性能上的损失(因为 PHP 4 及以上版本使用了引用计数)。相反更多情况下工作于拷贝而不是引用上更好,因为建立引用需要一些时间而建立拷贝实际上不花时间(除非它们都不是大的数组或对象,而其中之一跟着另一个变,那使用引用来同时修改它们会更聪明一些)。 你不用去记那些复杂的概念,就记得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另函数返回一个字符串来赋给某个变量了这样做的好处:我们可以不必为了一个变量而创建多个副本来占用系统资源。 引用就是指针。当初有个人开发了一个叫java的软件,以除掉了指针做为卖点。最后发现指针是必不可少的,又不好意思拉下面子改回去,于是换了个名字和写法叫引用。虽然程序变得比指针更容易出错和难理解,但流行就是一切,于是现在指针都变成引用了。 function($a)-----传入是和你一样的充气娃娃,扎一下娃娃破了,你没事function(&$a)-----传入的是你本人,扎一下,你流血了 如果是这种写法的引用呢:怎么理解?function &pageDocumentEdit($html)怎么理解? "引用就是指针。"?!Nophp中的引用可不是c或c++中的指针 function &pageDocumentEdit($html)怎么理解? function &pageDocumentEdit($html)怎么理解? 【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); 不会用引用就别用,Zend会优化的 void *p=a;unset(p)的话a是不会unset的好不好。指针只不过功能比引用强大一些。引用就是指针的一部分功能拆出来的。 引用就是指针。当初有个人开发了一个叫java的软件,以除掉了指针做为卖点。最后发现指针是必不可少的,又不好意思拉下面子改回去,于是换了个名字和写法叫引用。虽然程序变得比指针更容易出错和难理解,但流行就是一切,于是现在指针都变成引用了。--------------------------------------------------------引用不是来自java,c++至少从blorand c++ 3.0 的时候就有引用了(应该更早) Ucenter实现同步登入和登出 Incorrect integer value: '男' for column 'phonenumber' at row 1 session_start()问题 php函数问题 乱码问题 哪位仁兄知道如何将一个网站进行中文简体与繁体间的转换吗? php文件间参数传递!! 请你们帮帮我?关于PHP+ORACLE! php的cache技术 求一个PHP和Mysql数据库连接的例子 菜鸟一个问题。。。。 高手进
{
$str = 'hello';
}
function funcB(&$str)
{
$str = 'hello';
}$tmp = '';funcA($tmp);
echo $tmp; //结果为空funcB($tmp);
echo $tmp; //结果为hello
$conf = &new themeConfig(); 和 $conf = new themeConfig(); 有什么不同?
1、可以在函数里修改参数$html的原内容,但这里并没有这样做
2、通过引用来节省内存$conf = &new themeConfig(); 和 $conf = new themeConfig(); 有什么不同?
没有什么不同,new 总是返回类的实例化对象的引用
只是给$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另函数返回一个字符串来赋给某个变量了
这样做的好处:我们可以不必为了一个变量而创建多个副本来占用系统资源。
function(&$a)-----传入的是你本人,扎一下,你流血了
No
php中的引用可不是c或c++中的指针
$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);
unset(p)的话a是不会unset的好不好。指针只不过功能比引用强大一些。
引用就是指针的一部分功能拆出来的。
--------------------------------------------------------
引用不是来自java,
c++至少从blorand c++ 3.0 的时候就有引用了(应该更早)