php学习--函数(五)

目录:
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语言的库,使用时提前声明) 开启一些扩展模块

你可能感兴趣的:(php学习)