PHP-004-【变量】-局部变量和全局变量 静态变量

学习要点
1.函数中使用全局变量global
2.在函数中使用 global 关键字实现变量访问
global是起传递参数的作用,而并非使变量的作用域为全局

global的正确用法是:"在一个函数中引入外部的一个变量,如果该变量没有通过参数传递进来,那么就通过global引入进来。" 也就是说,当一个函数引用一个外部变量时,可以在函数内通过global来声明该变量,这样该变量就可以在函数中使用了(相当于当作参数传递进来) 

global的作用就相当于传递参数,在函数外部声明的变量,如果在函数内想要使用,就用global来声明该变量,这样就相当于把该变量传递进来了,就可以引用该变量了 

除了通过上述方法外,还可以使用全局数组$GLOBALS来解决问题,在需要用到外部变量的地方,使用$GLOBALS['var']就可以了 

使用 $GLOBALS 实现变量访问 

<?php
//定义三个变量
$num1 = 6;
$num2 = 4;
$num3 = 0;

//在函数中使用 global 关键字实现变量访问
function s1()
{
	//使用 global 声明全局变量
	global $num1,$num2,$num3;
	//使用全局变量进行运算
	$num3=$num1 + $num2;	
	echo $num3;
}
//运行该函数
s1();
echo "<hr>";

//显示变量
echo $num3;//10
echo "<hr>"; //换行

//使用 $GLOBALS 实现变量访问
function s2()
{
	//使用$GLOBALS操作变量
	$GLOBALS['num3'] = $GLOBALS['num1'] + $GLOBALS['num2'];
}
//运行该函数
s2();

//显示变量
echo $num3;//10

?>

学习要点
静态变量 static $vars = 0;

<?php
//使用变量的例子
function vars()
{
    $vars = 0;
    echo $vars."<br>";
    $vars++;
}
echo "第一次运行测试函数<br>";
vars(); //0
echo "第二次运行测试函数<br>";
vars(); //0 

//使用静态变量的例子
function staticvar()
{
    static $vars = 0;
    echo $vars."<br>";
    $vars++;
}

echo "第一次运行静态变量测试函数<br>";
staticvar();//0
echo "第二次运行静态变量测试函数<br>";
staticvar();//1
echo "第三次运行静态变量测试函数<br>";
staticvar();//2

?> 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言中有四种类型的变量局部变量全局变量静态局部变量静态全局变量。 1. 局部变量(Local Variables): 局部变量是在函数内部声明的变量,它们只在函数内部可见和访问。局部变量的作用域仅限于声明它们的函数内部。当函数执行完毕后,局部变量会被销毁,其占用的内存也会被释放。 2. 全局变量(Global Variables): 全局变量是在函数外部声明的变量,它们可以被程序中的所有函数访问。全局变量的作用域从声明开始的地方一直延伸到文件的末尾。全局变量在整个程序的执行过程中都是存在的,因此会占用内存。需要注意的是,在多个文件中使用同名的全局变量会导致冲突,因此应该避免这样的情况发生。 3. 静态局部变量(Static Local Variables): 静态局部变量与普通局部变量相似,都是在函数内部声明。不同之处在于,静态局部变量只会在首次进入该函数时进行初始化,之后的函数调用不会重新初始化该变量。同时,静态局部变量的作用域仍然限制在声明它们的函数内部,但是其生命周期会延长到整个程序的执行过程。 4. 静态全局变量(Static Global Variables): 静态全局变量与普通全局变量相似,都是在函数外部声明。不同之处在于,静态全局变量只能在声明它们的文件内部访问,其作用域被限制在当前文件范围内。其他文件无法访问该变量静态全局变量会在程序开始执行时进行初始化,并且在整个程序执行期间都存在。 以上就是C语言中四种不同类型的变量局部变量全局变量静态局部变量静态全局变量的特点和用法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值