一、函数的声明
1、语法结构
代码如下 | 复制代码 |
function 函数名 (参数列表) |
参数列表用逗号隔开,勿遗漏$变量符号
函数名不区分大小写,规则与变量一致
函数调用才执行,可先调用后声明
函数名不能重名,包括系统函数
2、函数调用
代码如下 | 复制代码 |
function sum($x,$y) //形参:在声明函数时声明的参数 sum(); |
二、函数中的变量
1、变量范围
局部变量:函数内部声明与使用的变量
全局变量:在函数外声明,脚本任何地方均可以使用
Tips:在PHP函数中使用全局变量,要通过global关键字将这个全局变量包含到函数中才能使用
代码如下 | 复制代码 |
$a = 1; demo(); |
2、PHP静态变量
静态变量可以在同一个函数中多次调用中共用
静态变量只能在函数或类中声明,不能在全局声明。
代码如下 | 复制代码 |
function demo($a = '') |
3、变量函数
代码如下 | 复制代码 |
$var = 'hello'; //变量名后面右括号,就寻找与变量值同名的函数 |
三、函数分类及声明
1、函数分类
代码如下 | 复制代码 |
//常规函数 //带mixed,表示可以传任何类型的数据 //带&参数的函数,这个参数只能是变量,变量值是动态的 //默认函数,即带[]中括号的函数,表示参数可选,若没有传值则使用默认值 //带有...参数的函数,表示可以传任意多个参数 |
2、声明多个参数函数
代码如下 | 复制代码 |
function Test() func_get_arg():返回参数列表中的第N个参数 function Test() |
使用实例
代码如下 | 复制代码 |
function cls_mysql() |
3、函数注释规范
代码如下 | 复制代码 |
/** * 用用演示函数 //函数功能,决定是否使用 * * @static * @access public * @param string $attributeName 属性名称 //函数参数,决定怎样调用 * @return string //函数的返回值,决定调用后怎么处理 */ public function demo($attributeName) { $attributeName = 'abc'; return $attributeName } |
四、Callback 回调函数
我们自定义一个函数A,但是我们不直接去调函数A,而是在函数B中去调用函数A,函数B通过接收函数A的名字和参数来实现对函数A的调用,函数A称为回调函数。
代码如下 | 复制代码 |
function A($x,$y) |
PHP回调函数的实现方法
php提供了两个内置函数call_user_func()和call_user_func_array()提供对回调函数的支持
代码如下 | 复制代码 |
//mixed call_user_func_array 以数组的形式接收回调函数的参数 //call_user_func的参数个数根据回调函数的参数来确定 |
实例:
代码如下 | 复制代码 |
//普通全局函数 echo "通过call_user_func_array调用函数f1: echo "通过call_user_func调用函数f1: //类 echo "调用类中非静态成员函数,该成员函数中有this调用了对象中的成员: echo "调用类中非静态成员函数,该函数没有调用对象中的成员,没有this: echo "调用类中静态成员函数: |
五、内部函数
在函数内部再声明函数,目的是在函数内部调用,用来帮助外部函数完成一些子功能