函数就是有一定功能的一些语句组织在一起的一种形式,定义函数的目的则是将程序按功能分块,方便程序的阅读、使用和管理。PHP的真正力量便是来自它的函数,PHP中拥有1000多个内置函数,我们很多的操作都会使用到不同的函数。
函数的定义
在PHP中声明一个函数,格式如下:
function 函数名([参数1,参数2,...参数n]){
执行的代码
}
说明:1,每个函数的第一行都是函数头,由声明函数的关键function、函数名和参数列表三部分组成。
2,函数名能够以字母或下划线开头,注意,函数名对大小写不敏感,与PHP变量不同。
变量作用范围
变量范围是指它的生效范围,大部分的PHP变量只有一个单独的范围。这个单独的范围跨度同样包含include和require引入的文件。<?php
//a.php中定义变量$a,在当前文件中引入a.php,变量$a也是生效的。
include "a.php";
var_dump($a);
局部变量
局部变量是指在用户自定义的函数中声明的变量,其作用范围也仅限于函数内部。此外,在声明函数时设置的参数也是局部变量,不同的在与函数的参数具体值是在函数的外部获得,而在函数内声明的变量是在内部进行赋值的。在函数执行结束后他们都会被释放。function sum($a){
$b = 200;
return $a + $b;
}
echo sum(100);
全局变量
全局变量是指在函数的外部定义的,它的作用域从变量定义处开始,程序文档的结尾。PHP和其他编程语言不同,全局变量不是自动设置为可用的。在PHP中,由于函数可以视为单独的程序段,所以局部变量会覆盖全局变量的能见度,因此在函数中并无法直接调用全局变量。若要在函数中使用全局变量有两种方法,一种是使用global关键字,另一种是使用$GLOBALS数组。$a = 100;
$b = 200;
function sum1(){
return $a + $b; //相当于函数内部新声明并且没有赋值的两个变量。
}
//使用global关键字加载全局变量$a和$b
function sum2(){
global $a, $b;
return $a + $b;
}
//使用$GLOBALS加载全局变量$a和$b
function sum3(){
return $GLOBALS['a'] + $GLOBALS['b'];
}
echo sum1();
echo sum2();
echo sum3();
静态变量
若希望在函数执行后,其内部变量依然保持在内存中,应使用静态变量。静态变量将连续前次的结果继续执行运算,并且仅在脚本的执行期间函数第一次时被初始化。使用关键字static可将函数变量声明为静态。
function test(){
static $a = 0;
echo $a;
$a++;
}
test(); //0
test(); //1
test(); //2