php函数

 一、自定义函数

function 函数名([形式参数1,形式参数2,....形式参数n]){
//各种PHP代码....
//......
return 表达式;//也可以不返回,如果不写那么默认返回null
}
函数的调用:
函数的调用需要遵循定义函数的时候写的规则,一一对应,将具体的实际参数传给定义函数时候写的形式参数!
调用函数之后执行的过程是相对独立的,互补干扰,默认没有联系!
执行完毕返回调用的位置继续向下执行
函数的返回值:
返回给调用者,默认返回null
函数比喻成我们现实生活中的 某个零件的制造部门!
参数:原材料或者是这个零件的一些具体的参数!
二、PHP变量的范围
1.局部变量
function test(){
$a=1;//局部变量$a,尽在这个函数内部有效
}
echo $a;
2.全局变量
$i=10;//全局变量(外部变量)
define('MY_NAME','孙胜利');
function test(){
echo MY_NAME;
global $i;//声明$i为全局变量,然后再这个函数内部就可以使用$i
echo $i;
$a=1;
}
test();
3.静态变量
function test(){
static $a=10;//静态变量$a,初始化静态变量,尽在第一次调用的时候执行
echo ++$a;//当第二次执行这个函数的时候$a这个变量依然存在并且里面的也值依然存在!
}
test();
echo '<br />';
test();
echo '<br />';
test();
echo '<br />';
test();
echo '<br />';
test();
echo '<br />';
test();
echo '<br />';
test();
三、参数的传递
1.按值传递参数
默认的,我们在传递参数的时候默认使用的就是这个方式!
对形式参数的操作,根本不是影响到实际参数(变量)的值,两者相当于没有联系!
2.按引用传递参数
按引用传递参数,相当于形式参数和实际参数指的是同一个人,只是名字不一样,对于形式参数的操作会直接影响到实际参数(变量);
3.函数的默认参数
可以给形式参数设置默认值,设置方法很简单直接赋值即可!
给形式参数加默认值的时候是重右往左加的,右边的必须有,才能够给左边的加!
4.可变长度参数列表
PHP提供给我们的,可以直接使用
func_get_args();
func_get_arg();
func_num_args();
这三个函数可以使用在我们的自定义函数内部,能够返回给我们一些关于参数的信息!
四、可变函数(变量函数)
直接把函数赋值给变量
可变函数不能用于例如 echo,print,unset(),isset(),empty(),include,require 以及类似的语言结构。需要使用自己的包装函数来将这些结构用作可变函数。 
五、递归函数
递归函数即在函数内部自己调用自己的函数。
递归函数:
1)函数在被调用的执行过程中会在内存里面分配空间用于存储临时数据,那么函数在执行过程中默认之间时没有联系的(除了
静态变量,按引用传,全局变量)。里面的变量默认都是局部变量,相互之间没有影响!
2)递归函数,在函数的内部需要有适时结束函数运行的条件!
六、内部(内置)函数
PHP提供给我我们许多现成的函数或者结构,我们可以在实际的开发中直接使用!
还有一些函数需要开启特定地 PHP 扩展模块,否则在使用它们的时候就会得到一个致命的“未定义函数”错误。
一些常用的内置函数或者扩展的函数,我们在后面会陆陆续续的学习到,一些不太常用的可能我们没有办法全部讲到,但是
你使用函数是用来完成功能的,说白了,你有这样的需求,才会去找对应的函数!
 
eg:
<?php
function test($n){
echo $n.'&nbsp;';
if($n>0){
test($n-1);//自己内部调用自己,即 递归函数
}else{
echo '<-->';
}
echo $n.'&nbsp;';
}
test(3);
/*
 * 死循环了,所以在使用递归的时候要注意避免这种情况!
function test($n){
echo $n.'&nbsp;';
test($n-1);
}
test(3);
*/

扫一扫手机访问