<?php
/**
* PHP变量的范围
* 1.局部变量(内部变量)
* 在函数内部声明的变量,作用域仅限于函数内部,参数也是局部变量;执行完毕后函数内部的变量都被释放
* 若需要使用函数内的变量值,可以使用return返回
* 局部变量(按存储方式分):
* 1.动态存储
* 自动分配存储空间,函数调用后自动释放
* 2.静态存储(静态变量)
* 函数执行完成后并不消失,依然保存在内存中,在第一次被调用时初始化
* 在所有对该函数的调用之间共享,接续前次的结果继续运算
* 声明 关键字 static
* 2.全局变量(外部变量)
* 在函数外定义的变量,作用域从变量定义处开始,到程序文件末尾
* PHP中,函数可以视为独立的代码段,在函数中无法直接调用全局变量
* 若要在函数中使用全局变量,必须使用 global 关键字定义目标变量,告诉函数体此变量为全局变量;
* 除了global,还可以使用特殊的PHP自定义$GLOBALES数组, 超全局变量
* 在GLOBALES数组中,每个变量是一个数组,键名对应变量名,值对应变量的内容
*/
header('content-type:text/html;charset=utf8');
// 定义全局变量
$c = 3;
$d = 4;
function variable($a){
global $d;
static $e = 5;
// 定义局部变量
$b=2;
// 函数内部:1+2 =3
echo "函数内部:$a+$b =" .($a+$b);
echo '<hr>';
// 报错 ,变量c未定义
echo $c;
// 输出4
echo $d;
// 输出3
echo $GLOBALS['c'];
// 不会释放,保存在静态内存中
echo $e;
$e++;
}
// $e = 5
variable(1);
// 报错 变量a,b未定义 函数外:+ =0
echo "函数外:$a+$b =" .($a+$b);
// $e = 6
variable(1);
转载于:https://www.cnblogs.com/cshaptx4869/p/8870385.html