php函数

自定义函数
function 函数名([形式参数1,形式参数2…形式参数n])
{//各种php代码
return 表达式;//也可以不返回,如果不写返回null
}
函数调用
函数的调用需要遵循定义函数的时候的规则,一 一对应,将具体的实际参数传给定义函数时写的形式参数。
调用函数之后执行的过程是相对独立的,互不干扰,默认没有联系!`


function test(){
	echo '你好';
}
test();//调用函数

函数的返回值
返回给调用者,默认返回null.



function add($a,$b){
	echo $a+$b;
}
add(2,3);
add(10,20);

php变量的范围
局部变量:仅在函数内部使用。
全局变量:在函数外部定义的,在php函数中无法直接使用全局变量,如需使用必须使用global生命变量。


$i=10;
function test()
{global $i;//声明$i为全局变量,然后在函数内部就可以使用$i;
 echo $i;}
test();
?>

静态变量:在函数内部定义变量的时候使用static关键字来定义变量。


function test()
{static $i=10;//静态变量
 echo ++$i;}
test();
echo '
'
; test(); ?> /*执行后的结果为: 11 12*/

参数传递
1.按值传递参数
对形式参数的操作不影响实际参数的值。


function test($i)
{
 echo ++$i;}
$a=10;
 test($a);
?>

2.按引用传递参数
按引用传递参数,相当于形式参数和实际参数指的是同一个人,只是名字不一样,对于形式参数的操作会影响实际参数(变量)。
3.函数的默认参数


function test($a=10)//参数的默认值
{echo ++$a;}
test();
//运行后的值为11
?>

4.可变长度参数列表
php直接提供,可以直接使用。
func_get_args()
func_get_arg();
func_num_args();
这三个函数可以直接使用在我们的自定义函数内部,能够返回给我们一些关于参数的信息;


function test()//参数的默认值
{var_dump(func_get_args());}
test(111,123,456,79)
/*
结果为
array(4) {
  [0]=>
  int(111)
  [1]=>
  int(123)
  [2]=>
  int(456)
  [3]=>
  int(79)
}*/
?>

function test()//参数的默认值
{var_dump(func_get_arg(0));//调用这个函数的时候可以传入一个值表示获取第几个实际参数(从0开始)
}
test(111,123,456,79)
/*结果为
int(111)
*/
?>

如果var_dump(func_get_arg(0));变为var_dump(func_get_arg(1));则输出的结果为int(123)。

php

function test()//参数的默认值
{var_dump(func_num_args());}//返回所在自定义函数参数的个数
test(111,123,456,79)
//结果是int(4)
?>

可变函数

php

function test()
{echo "我是test函数";
}
$a='test';//函数名字加引号赋值给变量
$a();//test()
?>

递归函数
递归函数即在函数内部自己调用自己


function test($n)
{echo $n;
 if($n>0)
 { test($n-1);//调用自己
}
else
{echo'<>';}
 echo $n;
}
test(3);
?>

你可能感兴趣的:(php函数)