一、函数定义与调用
1、函数定义
函数通常由函数名、参数、函数体和返回值4部分组成
2、函数调用
函数只有被调用后,才真正开始执行函数体中的代码
执行完毕,返回调用函数的位置向下执行
//fnc是函数名,{}里的是函数体,$name是参数
function fnc($name){
return $name;//返回值
}
//调用函数
echo fnc('wuhen');//结果为 wuhen
二、函数的参数
1、按值传递方式
按值传递是函数默认的参数传递方式,将实参的值赋值到对应的形参中
函数内部对形参的任何操作对实参的值都不会产生影响
2、按引用传递方式
将实参在内存中分配的地址传递给形参
引用传递方式需要函数定义时在形参前加上“&”号
3、默认参数
当没有传递参数的时候,函数会使用默认参数
使用默认参数时,任何默认参数必须放在任何非默认参数的右侧
//按引用传参
$num2 = 10;
function fnc2(&$var){
$var += 1;
echo $var;
}
fnc2($num2);//结果为 11
echo '<br>';
echo $num2; //结果为 11
//按引用传参会将实参的地址传给形参,因此改变形参也会改变实参
//默认参数
function fnc3($name='wuhen'){
echo "My name is $name";
}
fnc3('cat');
//结果为 My name is cat
fnc3();
//结果为 My name is wuhen
//当没有传递参数的时候,函数会使用默认参数
三、函数返回值
1、return语句可以将函数的值传递给函数的调用者,同时也终止了函数的执行
2、不需要返回任何值,而是结束函数的执行,可以只使用return
四、变量函数
1、可以声明一个变量,通过变量来访问函数。
2、如果一个变量名后有圆括号,PHP将寻找与变量的值同名的函数
$name = 'fnc4';
function fnc4(){
echo '通过变量调用此函数';
}
$name();//结果为 通过变量调用此函数
五、递归函数
1、递归函数即自调用函数,在函数体内直接或间接地自己调用自己
//递归函数
//实现一个数的阶乘
function factorial($num){
if($num<=1){
return 1;
}else{
return factorial($num-1)*$num;
}
}
echo factorial(5);//结果为 120