目录:
0×01:自定义函数
0×02:变量范围
0×03:参数传递,可变函数
0×04:递归函数
0×01:自定义函数
①函数定义
定义:function 函数(参数1,参数2,…,参数N){
函数体; //任意有效PHP代码
return 表达式; //不强制写,但写了return 没有表达式,则返回值为null;return也表示代码的结束
}
②函数的调用
注意:无论是系统给的函数,还是自己定义的,如果没有被调用都不会执行!
函数调用后执行函数体中的代码,执行完毕后,自动返回调用的位置继续向下执行。
③函数的参数
形式参数由零个,一个或者多个变量组成。
实际参数由零个,一个或者多个参数组成,每个参数是一个表达式,由逗号分隔。
④函数的返回值
函数的返回值是将函数执行的结果返回给函数的调用者
如果不写返回,则默认返回值为NULL
0×02:变量范围
①局部变量
也称为内部变量,是在函数内部定义的,当然其适用范围仅限于函数内部,在函数外部肯定使用不了。
function test(){
$a=1
}
这个a就是局部变量
②全局变量
也称为外部变量,是在函数外部定义的,其使用范围从变量定义到程序结束。
全局变量要使用需要使用global定义。
③静态变量
在函数内部定义变量的时候使用static来定义变量。
特点:函数执行完毕之后变量不会立即消失,再次调用函数时,函数将会保留上次使用过后的只,并且只在第一次执行函数的时候初始化值。
function test(){
static $a-10;
echo ++$a;
}
test();
echo
;
test();
两次输出的值为11,12.
0×03:参数传递,可变函数
①按值传递参数
我们在传递参数时,如果没有声明,就默认为这种方式!这种方式下改变形式参数的值而不会影响到实际参数的值,,相当于两者没有关系。
②按引用传递参数
相当于形式参数和实际参数指的是同一个人,形式参数的改变会直接影响到实际参数的值!
③函数的默认参数
可以给形式参数设置默认值,直接赋值即可。
赋值规则:从左向右,右边的参数必须有值,才能给左边的赋值。
④可变长度参数列表
func_get_args() //获取参数的类型,信息
func_get_arg() //调用此函数时,可以传入一个值(从0开始),表示获取第几个实际参数的信息
func_num_args() //返回传入参数的类型,个数
在函数内部使用,返回给我们一些参数信息。
⑤可变函数
function test(){
echo '我是菜鸟'
}
$a=test(); //把函数的名字加上引号赋给变量即可
$a() //test()
0×04:递归函数
递归函数即为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行。
0) {
test($n - 1);
} else {
echo "<-->";
}
echo $n . " ";
}
test(10);
?>
函数输出的结果:
10 9 8 7 6 5 4 3 2 1 0 <–> 0 1 2 3 4 5 6 7 8 9 10(我也是理解了很久才明白的,有点绕不回来)
执行test(10),echo 10,然后因为10>0,执行test(9),后面还有没来得及执行的echo 10
所以先留来一个10,到第二步时执行test(9) ,echo 9,9>0 ,执行test(9),后面的同样没来得及执行 echo 9,这样保留了一个 9,最外层时10 , 然后9,8,7,6,5,4,3,2,1
…
最后执行到0时,输出 10 9 8 7 6 5 4 3 2 1 0 <–> 0 此时函数已经不再调用自己,开始将流程的主控权交回给上一层函数来执行。
从内而外输出1,2,3,4,5,6,7,8,9,10,
最后的输出结果10 9 8 7 6 5 4 3 2 1 0 <--> 0 1 2 3 4 5 6 7 8 9 10
递归函数就结束了。
0×05:内部(内置)函数
php提供给我们很多的现成的函数,来给我们使用。(类似于C语言的库,使用时提前声明) 开启一些扩展模块