php函数的传值与传址

传址方式传递函数参数<?$i=100;functionfunc(&$n){$n=$n+100;//因为传址传入变量$i,所以这里的变量$n引用放入就是$n本僧,此举等价于... 传址方式传递函数参数
<?
$i=100;

function func(&$n)
{
$n=$n+100;//因为传址传入变量$i,所以这里的变量$n引用放入就是$n本僧,此举等价于$i=$i+100
}

echo"调用函数func前:\$i=$i";
echo"<br/>";
echo"<br/>";

func($i); //经$i传入函数func,因为是传址方式,所以此时函数内的变量$n就是变量$i
echo"调用函数func后:\$i=$i;
?>

传值方式传递函数参数
<?
$i=100;

function func(&$n)
{
$n=$n+100;
}

echo"调用函数func前:\$i=$i";
echo"<br/>";
echo"<br/>";

func($i);
echo"调用函数func后:\$i=$i.<br/>";
?>
执行结果
传址方式
调用函数func前:$i=100
调用函数func后:$i=200
传值方式
调用函数func前:$i=100
调用函数func后:$i=100
问题:
1发明传值和传址的目的是什么?
2传值的倒数第二行 $i.<br/>"; 为什么要写 (.)和<br/>而传址中没写这个?
3书上说:从这个执行结果可以看出,因为是传值方式传递给函数参数,在函数体内使 用的是变量$i的一个拷贝,并不是$i本身,所以尽管在函数体内执行了加法运算,但并 没有影响到变量 $i的原始值。
变量$i的一个拷贝在哪儿?为什么不用拷贝就影响不了原始值?
4书上只是说明了这件事,没有说为什么,逻辑条理都没有,很不明白。
请按编号回答问题。
传值的倒数第二行 $i.<br/>"; 为什么传值中写了 (.)和<br/>而传址中没写这个?作用是什么?不要回答连接符和空格。
展开
 我来答
Huwlsc
推荐于2016-08-25 · 超过32用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:25.6万
展开全部
1。传址为了在执行函数的同时,同时改变函数参数值,而传值不期望改变。
2。$i.<br/>,PHP中的(.)是字符窜连接符号,意思是说把$i代码的字符窜与字符窜'<br/>'连接起来,一起输出,在HTML中,<br/>是一个换行符。。。
3。另一个拷贝在内存里头,函数执行完毕,就销毁了。
4。把书的那几页撕掉。

对传值,传址,函数均无影响,对我国计划生育也无影响,只是打印出一个<br/>,使输出结果换行,你可在传址函数也加上<br/>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式