- 最近的确是被这些变量作用域给恶心到了
编程语言里面,高级语言的变量作用域基本上都是分为局部作用域 和 全局作用域
唯独shell
与众不同,自定义的函数里面定义的变量默认为全局变量。
下面做一个代码演示
int a=3;
void f(){
a = 4;
}
printf("调用函数之前a=%d\n",a);
f();
printf("调用函数之后a=%d\n",a);
- C语言里面的结果显示为
调用函数之前a=3
调用函数之后a=3
a=3
def f():
a=4
print("调用函数之前a=",a)
f()
print("调用函数之后a=",a)
- python语言的结果显示为
调用函数之前a= 3
调用函数之后a= 3
$a=3;
function f(){
a=4;
}
echo "调用函数之前a="+$a;
f();
echo "调用函数之后a="+$a;
- php语言显示结果为
-
调用函数之前a= 3
调用函数之后a= 3
a=3
function f(){
((a=a+1))#进行一个加法运算
}
echo "调用函数之前a=$a"
f #shell调用函数的时候不用带括号
echo "调用函数之后a=$a"
- shell语言显示结果为
调用函数之前a= 3
调用函数之后a= 4
特此做一个标记,下次不可再犯作用域的问题