一、说明
功能层面,函数是模块化程序的体现,一个程序由很多个大功能组成,大功能由很多小功能(函数)模块组成
代码层面,封装的功能用{}包住,用function关键字,给功能模块起个名字函数名
二、参数
形参是普通变量function test($i)
实参是引用变量function test(&$i)
三、变量与常量作用域、生命周期
变量(有预定义变量也叫超全局变量如$_GET、$_POST、$GLOBALS、全局变量、局部变量、静态变量仅声明一次 关键字static修饰)与常量
作用域:一个变量的作用范围
1、函数内部访问内部,外部访问外部
2、内部访问外部:
传参可以解决函数访问外部数据
$i = 1;
function test2($i){
$i++;
}
test2($i);
G L O B A L S 会 保 存 所 有 全 局 变 量 为 数 组 , 所 有 函 数 内 部 都 可 以 使 用 GLOBALS会保存所有全局变量为数组,所有函数内部都可以使用 GLOBALS会保存所有全局变量为数组,所有函数内部都可以使用GLOBALS的值
$name = '张三';
$age = 18;
function test(){
echo $GLOBALS['name'];
echo $GLOBALS['age'];
}
test();
3、外部访问内部:global关键字
function test1(){
global $name1;
$name1 = '李四';
}
test1();
echo $name1;
print_r($GLOBALS);
global 变量名;实际是在函数内部创建同名函数,并引用此全局变量的地址,达到内部外部都可以修改变量的值,如果外部没有这个变量则定义一个同名全局变量
关于作用域:
常量:任何位置都可以访问
预定义变量:不受作用域影响
局部变量:受作用域影响,只能在函数内部使用
静态变量:受作用域影响,只能在函数内部使用
生命周期:一个变量的作用时间范围
常量:从脚本开始到结束(仅限在引用的定义php常量的脚本中)
全局变量:从脚本开始到结束
局部变量:从函数还是到函数结束
静态变量:从脚本开始到结束(当函数执行完毕后,静态变量不会消失)