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/>而传址中没写这个?作用是什么?不要回答连接符和空格。 展开
<?
$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/>而传址中没写这个?作用是什么?不要回答连接符和空格。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询