PHP函数(一)-变量

1.全局变量

<?php
	$a = 1;
	$b = 2;
	function test(){
		echo $a + $b."<br>"; //运行结果为0
	}
	test();
	echo $a + $b; //运行结果为3
?>

 可见,在函数中无法直接调用全局变量

test()函数中的变量$a和$b都没有被赋值,进行空值运算,得到结果为0

在函数中使用全局变量可以使用global和$GLOBALS数组

使用global

<?php
	$a = 1;
	$b = 2;
	function test(){
		global $a,$b;
		echo $a + $b."<br>"; //运行结果为3
	}
	test();
	echo $a + $b;  //运行结果为3
?>

使用$GLOBALS数组

<?php
	$a = 1;
	$b = 2;
	function test(){
		echo $GLOBALS['a'] + $GLOBALS['b']."<br>"; //运行结果为3
	}
	test();
	echo $a + $b;  //运行结果为3
?>

 2.局部变量

<?php
	function test($a){
		$b = 1;
		echo $a + $b."<br>"; //运行结果为3
	}
	
	test(2);
	echo $a + $b; //运行结果为0
?>

 函数外不能访问函数内定义的变量,所以函数外进行空值运算,结果为0

如果函数外部需要调用函数内的变量,需要通过return将其值传回到主程序区块

<?php
	function test($a){
		$b = 2;
		return $a + $b;
	}
	$c = test(1);
	echo $c;  //运行结果为3
?>

 3.静态变量

函数中的局部变量都是动态地分配储存空间的,在函数结束调用后自动释放。如果定义静态变量,则函数结束运行后,变量还会保存在内存里,当函数再次执行时,静态变量将接着上次的结果继续运算。

通过static将局部变量设置为静态变量

<?php
	function test(){
		static $a = 0;
		echo $a;
		$a ++;
	}
	test(); //运行结果为0
	test(); //运行结果为1
	test(); //运行结果为2
	test(); //运行结果为3
?>
原文地址:https://www.cnblogs.com/sch01ar/p/7887489.html