这两种引用传参有什么区别 期待高手解答

chutou 2008-08-04 10:07:29

<?

$x=4;
$y=3;
echo add(&$x,&$y);

function add($a,$b)
{
return $a + $b;
}

$x=4;
$y=3;
echo add_sub($x,$y);

function add_sub(&$a,&$b)
{
return $a + $b;
}

?>
...全文
206 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
changrui 2008-08-05
  • 打赏
  • 举报
回复
小弟 路过 进来顶一下!
xuzuning 2008-08-05
  • 打赏
  • 举报
回复
就结果而言,没有什么区别

但就有质的区别了

function add($a,$b)
{
return $a + $b;
}

echo add(&$x,&$y); //用$x,$y参与运算

echo add($x,$y); //用$x,$y的副本参与运算

**************

function add_sub(&$a,&$b)
{
return $a + $b;
}
echo add_sub($x,$y);//用$x,$y参与运算

echo add_sub(&$x,&$y);//用$x,$y参与运算

*************

当你将 return $a + $b; 改为 return $a = $a + $b; 时
echo $x,$y; 就会发现区别了


ly4885806 2008-08-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 mrshelly 的回复:]
唉.....
这就是中国的IT教育惹的祸....

能达到目的就行了.

WEB这一块.没有必要那么较汁....
[/Quote]
您错了,这里面涉及到一个知识问题,不同的写法程序执行的效率完全不同。
&加上变量前表示使用这个变量本身而不重新构造一个新变量
这样程序执行的效率要高
mrshelly 2008-08-05
  • 打赏
  • 举报
回复
唉.....
这就是中国的IT教育惹的祸....

能达到目的就行了.

WEB这一块.没有必要那么较汁....
wintenko 2008-08-05
  • 打赏
  • 举报
回复
貌似都一样的说。
总哈哈 2008-08-04
  • 打赏
  • 举报
回复
提醒一下,楼主写PHP习惯不好,注意改正.
总哈哈 2008-08-04
  • 打赏
  • 举报
回复
这样看是没有什么区别,因为$a和$b的值在函数里面没有改变,如果改变了,那就有区别了.
chutou 2008-08-04
  • 打赏
  • 举报
回复
后面一种比较常用 可以理解

但是第一种 和 下边的怎么感觉没区别呀

$x=4;
$y=3;
echo add($x,$y);

function add($a,$b)
{
return $a + $b;
}
gs6fox 2008-08-04
  • 打赏
  • 举报
回复
后面一种会影响变量本身的值,有点类似C的指针
familyX 2008-08-04
  • 打赏
  • 举报
回复
好像没区别吧。都是传参数的地址啊。
xiongbing529 2008-08-04
  • 打赏
  • 举报
回复
后者可以改变参数的值
hztgcl1986 2008-08-04
  • 打赏
  • 举报
回复
第二个比较正规
beeqee 2008-08-04
  • 打赏
  • 举报
回复
楼主现在写的两个是没区别。。
chutou 2008-08-04
  • 打赏
  • 举报
回复
这么点代码 就能看出编码习惯不好啊
您真神了

亏我还自认为习惯不错 唉 看来还得努力啊

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧