一个关于传地址的奇怪问题

Yeeler 2009-06-07 09:05:00

<?php

$w = array (1, 2, 3, 17);

foreach ( $w as $c )
{
fun( $c );
}

function fun(&$a){
$a++;

}
print_r($w);

?>


结果是:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 17 )
可应该是:Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 18 ) 啊
为什么没有变,请各位大侠赐教?
...全文
48 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wrb513 2009-06-07
  • 打赏
  • 举报
回复
学习
Yeeler 2009-06-07
  • 打赏
  • 举报
回复
咳 刚发完 自己已经知道错在哪里了,不过 还是多谢各位捧场。
正确写法是这样的

<?php

$w = array (1, 2, 3, 17);

foreach ( $w as $key => $value )
{
fun( $w[$key] );
}

function fun(&$a){
$a++;

}
print_r($w);

?>

雪碧爱可乐 2009-06-07
  • 打赏
  • 举报
回复

foreach($w as $c) {//是从数组中取值赋给变量$c
fun( $c );//我想你改变的是$c,而不是$w数组的值
}
应该网 2009-06-07
  • 打赏
  • 举报
回复
你每次改变的是$c,跟$w没有关系。

得到的结果自然也没改变。

21,893

社区成员

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

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