永发信息网

PHP中形参和实参的参数传递

答案:3  悬赏:30  手机版
解决时间 2021-01-04 18:21
  • 提问者网友:伴风望海
  • 2021-01-03 21:38
<?php
function abc($a){ //这个 $a 是实参
$a++; //这个是形参;
echo "形参的值=“.$a."<br>";} //这是输出形参的值;

$a=2; //这是定义实参的值;
abc($a); //这是将定义的实参的值赋值给abc函数内的形参;
echo "实参的值=".$a; //这是输出实参的值.

各位前辈们,本人正刻苦自学中,上方的注释都是我个人的理解...请问这么理解对吗?
修改一下。。

(1) $a=2; //这是定义实参的值,并将值复制给了形参$a;
(2) abc($a) //这是调用,也是一种传递(将实参的值在调用时传递)

各位大侠~~~我这么理解对吗??
最佳答案
  • 五星知识达人网友:街头电车
  • 2021-01-10 03:57
<?php
function abc($a) //这个$a是形参
{
$a++;
echo $a;
}
$a=2;
abc($a); //这个$a是实参 输出:3
echo $a; //输出:2 因为传进abc里的是它的一副本 要想在函数内改变该值,可以用引用传递
function abc(&$a)
{
$a++;
echo $a;
}
这样你再运行完这函数,函数外边的$a的值也改变了
全部回答
  • 1楼网友:逐風
  • 2021-01-10 05:20
用数学中的函数对比,如f(x) = 2x + 10 f(x)是返回值,x是形参,当你给x赋值为5时,实参是5,当赋值为10时,实参是10 因此,概括的说实参是某次函数调用时给形参的赋值 参数传递方式本质上只有一种,即传值。 传址与传引用都是传值的概念转换,比如 void calc(int * ptr); 在调用时,表面上是传址,但对ptr这个形参来说,它的值初始化为了实参,因此是传值。 最本质的理解方法是,从内存的角度,给某个变量赋值无外乎在某个地方内存中写值,因此你需要关注目标内存是否被改变。比如,给指针形参指向的内存写值时,写的就是实参指向的内存,这就是传址的本质。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯