函数语句块
Scope 函数生存期,变量作用域
作用域作为可访问变量,对象,函数的集合
Bash
#!/bin/bash
## bash:bash宿主存在内部命令
var="helloworld"
function func {
echo $var
funvar="hellofunc"
local funcvar2="hellofunc2"
}
func #可以访问全局变量
echo $funvar #可以访问函数变量
echo $funcvar2 #无法访问函数局部变量
## 声明局部变量
Perl
## Perl:Perl宿主存在内部命令
$var="helloworld";
sub func {
print $var ."\n";
$funvar="hellofunc";
my $funvar2="hellofunc2";
}
func; #可以访问全局变量
print "$funvar\n"; #可以访问函数变量
print "$funvar2\n"; #无法访问函数局部变量
## 声明局部变量
Javascript
// Javascript: js宿主存在内部命令
var var1 = "helloworld";
function func() {
document.write(var1);
funcvar = "hellofunc";
let funcvar2 = "hellofunc2";
window.var1=window.funcvar;
}
func(); //可以访问全局变量
document.write(funcvar); //可以访问函数变量
document.write(funcvar2); //无法访问函数局部变量
document.write(var1); //全局变量对象
// 声明局部变量
PHP
<?php
## PHP:不存在PHP宿主内部命令
$var=5;
$var2=10;
const VAR3=15;
function func()
{
global $var2;
$funvar="hellofunc";
echo $var; #函数无法访问全局变量
echo $var2; #global关键字,可以访问全局变量
echo VAR3; #常量作用域在整个脚本中,类似bash的变量
$GLOBALS['var1']=$funvar; #全局变量数组
}
func();
echo $funvar; #无法访问函数局部变量
echo $var1; #全局变量接受局部变量
# 默认定义局部变量
?>