函数的定义
l 函数是一段命名的代码段。
函数可以减轻工作量,减少重复的代码,方便后期维护。
函数的参数
l 实参:调用函数时,传递的参数就是实参,含有真正数据的。
l 形参:定义函数时的参数。
值传递
l 函数参数的值传递,就是将参数的值,复制一份,传到函数中。
引用传递
l 值传递速度比较慢,但修改其中一个不会影响到另一个;
l 引用传递速度比较快,但修改其中一个,另一个也会改变。
l 引用传递,是将一个变量的地址,复制一份,传到函数中。
默认参数
l 如果实参个数少于形参个数时,可以用一个默认参数来代替。
l 默认参数,只能用在定义函数时的参数。
l 默认参数的位置,必须放在非默认参数的右边。
l 默认参数的值,只能是:字符串、整型、浮点型、布尔型、NULL、数组。
函数可变数量参数
l func_get_args( void ):返回一个参数列表的枚举数组,参数数组的下标是从0开始的正整数
l func_get_arg( $index ):返回参数数组中,指定下标的参数的值;
l func_num_args( void ):返回实参的个数。
l 提示:以上三个系统函数,都只能在函数定义中来使用。
返回值
l 函数的返回值,通过return语句来实现;
l 将函数的执行结果,返给了函数调用者;
l return语句一旦执行,函数立即结束,函数剩余的代码不再执行了。
l return语句有”中断”函数、”退出”函数;
l return不能同时返回多个值,只能返回一个值。如果想返回多个值,可以放入数组。
可变函数
l 在调用函数时,函数的名称是一个变量,该变量的值是一个字符串的函数名。如:$a()
l 在这种情况下,也可以传递参数;
l 注意:字符串的函数名,不能带小括号。
匿名函数
l 没有名字的函数,就是”匿名函数”。
l 匿名函数不能单独定义,也不能单独调用。
l 匿名函数,一般是做为数据,给变量赋值的。
l 匿名函数结束大括号后的分号,不能省略。