php内部函数问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 07:38:40
在内部函数中声明一个$a如:
function fun(){
$a=20;
function fun1(){
echo $a;
}
}
在fun1这个函数里能访问这个$a吗?如果不能访问,请说明详细为什么???谢谢

答案是不能,主要是2个错误.
第一,所有函数内的变量会在函数调用结束后被销毁.所有$a在fun()执行完后已经不存在.
第二,在fun1()中的$a是空的,就算你之前成功了初始了$a=20,你也无法在函数中直接调用外部变量.
正确的方法是function fun1($a){...}然后调用的时候fun1('20')就可以正确显示 20. 不过要注意的是就算你调用进来$a=20,然后在函数中改变其值例如$a=30,当在函数外调用时$a的值不会改变还是20.
这里最重要的是要记住函数内的变量和函数外的变量是不同的, 如同在2个世界的人就算他们名字一样.

fun1是套在fun里的?
你这个肯定要报错的吧
如果两个function是独立的,那么,要访问的话,只能是把$a声明为全局变量
function fun(){
global $a;
$a = 20;
}
function fun1(){
global $a;
echo $a
}

可以访问,
但是得调用fun()自定义函数,
fun1() 才能访问$a的值

不能, 因为你不懂编译原理, 这里有嵌套。 变量的作用域是有区别的