+ -
当前位置:首页 → 问答吧 → 高老师的视频讲解疑问

高老师的视频讲解疑问

时间:2009-03-14

来源:互联网

在第四章函数的声明与应用(二)的视频里,讲的内部变量和外部变量时,我觉得有一处让我不能理解。代码是这样写的:

我听明白讲$a传给形参,形参仍属于局部变量,不能影响全局变量$a的值,但是这么赋值是不是错了?形参怎么能是$a呢?难道让内部函数变成100=999?实参可以是$a,因为就是想让全局变量$a的值传给fun1函数的形参进行$a的内部赋值,那是不是应该在fun1的函数内部写成$a=$b,让fun1的形参变成$b,要不然没有意义啊。

作者: recher1114   发布时间: 2009-03-14

又听了几遍,老师的意思是说当调用这个函数的时候把$a的值100传进来,把100传给了形参$a,而这个形参相当于在函数内部新声明一个变量,也就是在内部新声明一个$a=100,可我之前学习,函数的参数,就是用来赋值的,怎么又形成一个变量了?

作者: recher1114   发布时间: 2009-03-14

请高老师或者高手指点一下

作者: recher1114   发布时间: 2009-03-14

那如果是这样,就不应该叫形参了,应该叫形量=形式变量

作者: recher1114   发布时间: 2009-03-14

是不是应该这样写?

作者: recher1114   发布时间: 2009-03-14

这样写也是说明在调用函数时,将全局变量$a的值10赋值给形参,然后在函数内部重新将内部$a变量赋值为999,但这种形参赋值也是属于局部变量,不同于使用global $a,所以输出$a的结果还是全局变量$a的值100.

作者: recher1114   发布时间: 2009-03-14

怎么不可以呀,function fun1($a)中的$a是可以为任何符号的,但是这个$a是局部的,当然无法改变了,除非如下:



这样才能改变¥a的值

作者: opera   发布时间: 2009-03-14

还是没理解我说的话,我知道引用global之后就可以真正的使用全局变量,我的意思是说,在函数体中,注意是函数体中,$a=999是已经声明的一个变量,而形参也写成$a,那传进来的100是给谁?是不是给函数体中的$a?那不就是变成100=999了?我的意思是在函数体内部重新声明一下变量让$a=$b,将形参写成$b,实参还是$a

作者: recher1114   发布时间: 2009-03-14

我不是跟你讨论形参能不能改变,我知道怎么起名字都可以,只要符合命名规则就可以,我也知道传进来的参数是局部变量,我就想知道,是不是老师说的那个意思,当调用函数的时候,将参数100赋给了$a,而$a在函数体中形成了一个新的变量$a=100,然后又将$a改变成999,是这意思吗?我一直认为参数只能赋给函数体中的指定参数,而不能潜规则形成新的变量,比如下面这个计算器的函数,我就是认为只能将传递的参数赋给函数体中函数声明的形参。

作者: recher1114   发布时间: 2009-03-14

哪个~~~~~~~~~~~~~·

作者: jy02893849   发布时间: 2011-04-05