函数的特性

形参,实参,默认值,强类型参数,可变函数的参数列表,值传递和引用传递。变量的作用域,static静态变量。

形参&实参:在定义的函数中,指定的参数如果没有调用,并不占用内存空间,只有发生调用时,函数的形参才会被分配内存空间,在调用结束后,形参所占用的内存单元是会被释放掉的。

从php7.1开始,如果函数的形参没有默认值,而实参少于形参,那么程序就会被报一个致命的错误,并且终止程序的运行。如果实参大于形参数目,程序依然执行,并且截取和形参相同的数目,并且按顺序赋值给形参。

强类型参数:

declare( strict_types = 1);// 实参必须是函数形参指定的类型,否则则报错

函数可变数量的参数列表:

function ( . . . $nums){

}

函数值传递与引用传递

求阶乘:

function factorial($num){
               $ret = 1;
               for($i = 1;$i<= $num;$i++){
               $ret *= $i;//$ret = $i*$ret;
}   
        return $ret;  
}

值传递其实是一种单项传递 只能由实参传递给形参而不能由实参传递给形参。在内存中实参单元与形参单元是不同的单元,在调用函数时,会给形参分配一个内存空间,在调用结束后,形参单元会被释放,实参单元仍然保留,并且维持原来的值。

 变量的作用域:

变量范围与生命周期:

局部变量

1 当前页面中声明的普通变量,不能在函数中或类中起作用

2 当前页面中声明的普通变量,不能被传递到其他页面

3 在函数中声明的普通变量,在函数内部有效

4 在类中声明的属性,在类的内部有效

全部变量

对于php而言,在页面中生产的变量都是全局变量,在整个页面都是有效的,但是不能被函数或类中的方法访问

如果想被函数或类中的方法访问,我们就有了超全局变量

php自定义的超全局变量,$_GET,$_POST,$_COOKIE,$_SERVER,$_FILES,$_ENV,$_REQUEST,$_SESSION

静态变量

仅仅在函数局部域中存在,当程序执行完,离开这个域,它的值并没有丢失。

原文地址:https://www.cnblogs.com/aln0825/p/10879074.html