函数语句块

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;     #全局变量接受局部变量

# 默认定义局部变量
?>
posted @ 2024-11-20 18:09  NAGISB  阅读(3)  评论(0编辑  收藏  举报