目录
1 函数的参数
1.1 值传递
将变量的值传递给函数使用,在函数内对该变量进行修改也不会影响函数外的变量值。
例如:以下函数为值传递,所以最后输出的结果为2和1。
<?php
$a=1;
function add($value){
$value++;
echo $value;
}
add($a);
echo $a;
?>
1.2 引用传递
将变量的地址传给函数使用,在函数内改变该变量的值会影响到函数外的变量。
例如:以下的函数为引用传递,需要在变量之前加&,所以最后输出的结果为2和2。
<?php
$a=1;
function add(&$value){
$value++;
echo $value;
}
add($a);
echo $a;
?>
1.3 默认参数
定义函数时可以使用常量表达式作为函数的默认参数,调用该函数并没有补全参数时,该函数会自动用默认参数进行补全。
<?php
function get_info($name='brell',$age=21){
echo $name;
echo $age;
}
get_info();
?>
1.4 可变的参数数量
在PHP5.6之后的版本中,可以使用省略号‘...’来接收一个可变数量的参数,该参数会以数组的形式传递给函数使用。
<?php
function get_name(...$name){
var_dump($name);
}
get_name('brell','jaky');
?>
2 可变函数
可以使用变量加()的形式来执行与变量值同名的函数。
<?php
function blessing(){
echo 'happy new year';
}
$str='blessing';
$str();
?>
3 匿名函数
匿名函数也称为闭包函数,允许函数定义一个未指定函数名称的函数。记得匿名函数需要以分号结尾。
<?php
$learn=function(){
echo 'Learning php!';
};
$learn();
?>
4 递归函数
递归函数就是函数本身调用本身,需要注意的是递归函数需要一个入口和一个出口,只有入口而没有出口的话会使程序进入死循环。
例如:斐波那契数列1,1,2,3,5,8,13...
公式:f(n)=f(n-1)+f(n-2) {n>1}
<?php
function Fibonacci($n){
if($n>2){
$arr[$n]=Fibonacci($n-1)+Fibonacci($n-2);
return $arr[$n];
}else{
return 1;
}
}
echo Fibonacci(6);
?>
5 内置函数
PHP提供了丰富的函数库,包括图像处理‘音频处理、’目录文件操作、压缩、加密、数据库扩展、日期处理等。
查看PHP内置函数可以使用get_defined_functions();
函数查询:http://php.net/