
function 函数名([参数]){} ===> 定义一个函数
函数是一个被命名的、独立的代码段, 执行特定的任务,并可能给调用它的程序返回一个值 . 该
定义中的各部分如下:
- 函数是被命名的.每个函数都有唯一的名称,在程序的其他部分使用该名称,可以执行函数中的话句,这个被称为调用函数。
- 函数是独立的.无需程序其他部分的干预,函数便能够执行其任务.
- 函数执行特定的任务.任务是程序运行时所执行的具体工作
- 函数可以将一个返回值返回给调用它的程序(有return 将 有返回值)
函数的参数
常规参数:
与其他编程语言一样,可以在函数名那直接指定
function a($a,$b){ }
如上 : 在使用方法时,可以直接传入两个变量,如果在调用函数时没有传入函数 或 函数传入过少,则会抛出警告!!
引用参数:
PHP可以像C一样,可以让变量显示的按引用传递
function b(&$a){}
如上 : 在使用方法时,变量是按引用传递的,这样,那么标量就不能在这个方法中使用,不然就会抛出一个异常
方法默认参数:
如果在使用程序时不指定的传递参数,那么可以让他使用默认的参数
function c($a=”默认参数”){
return $a;
}
echo c(); //这里不会发生错误 , 使用默认的值 , 输出 默认参数
如上 : 在使用方法时,如果没有传递参数,那么程序将默认传递指定的数据
可变的参数:
PHP可以像JavaScript一样,不在参数列表获取参数,而是在函数内使用方法获得
function d(){
foreach(func_get_args() as $v )
echo $v; //循环依输出111,222,333这三个参数
}
d(“111″,”222″,”333”);
如上 :使用方法获得参数信息,func_get_args()可以获得一个数组,其中包含所有的参数数据,而使用func_get_arg(index)可以获得某一个角标上的参数
函数
变量函数:
PHP支持可变蛮量,也支持可变函数
function bbb(){ echo “test”; }
$a = “bbb”;
$a(); //输出 test
回调函数:
简单来说,回调函数就是方法需要一个函数作为参数,然后这个方法自行调用这个函数,标识了Callback 就是需要一个函数作为参数,例如:
function demo($a){
if(function_exists($a))
return $a()."bbb";
/*
上面是使用可变函数,也可以使用PHP提供的方法,以上语句可以改为
return call_user_func_array($a,array())."bbb";
第一个参数为: 函数的方法名
第二个参数为: 函数的参数,由于参数是不定的,那么用一个数组来传递,数组中的数据,对应着不同的参数,如果没有参数,可以传递一个空数组
*/
}
//这里的demo2是作为回调函数存在的
function demo2(){
return "aaa";
}
var_dump(demo("demo2")); // ===> 输出 aaabbb
如果demo2()这个函数是作为类的函数存的的那么,我们在传递时就需要指明哪个类或对象
class bbb //如果 demo2 是作为对象的方法
{
static function demo2()
{
return "aaa";
}
function demo2_copy(){
return "aaa";
}
}
//如果调用的函数是在方法内的,那么在call_user_func_array使用时,必须传给一个数组
demo(array("bbb","demo2")); //如果想要调用的方法在类内是静态方法,就要指明类名,方法史
demo(array(new bbb(),"demo2_copy")); //如果在类中是一个对象方法,就要传递对象,方法名
系统函数:
PHP内部支持了很多的函数(详见手册) : http://php.net/manual/zh/funcref.php
递归函数:
如果函数直接或间接调用函数本身, 我们称这个函数为递归函数
function demo(){
demo(); //这样就形成了递归,虽然这个会死循环,但我们在实际的开发中会加判断
}
加载函数:
加载函数是系统函数提供的一种包含\使用其他文件的方法
- include:出错时将发生一个警告
- require:出错时将发生致命错误
- include_once:同include,但如果包含过,就不包含该文件
- require_once:同require,但如果包含过,就不包含该文件
匿名函数(PHP5.3的新特性):
可以像js一样使用编程匿名函数,回调函数、闭包可使用此方法导入函数
function demo3($a){
$a();
}
demo3(function(){
echo "1111";
});
闭包函数
关键字USE,闭包有两个特性
- 作为一个函数变量的引用,当函数返回时,其处于激活区
- 一个闭包就是当函数没有返回时,一个没有释放的栈区
function demo3(){
$a =1;
$b = "f";
$c = function() USE($a,$b){ //如果没有USE 关键字,$a,$b根本不存在
return $a.$b;
};
return $c();
}
echo(demo3()); // 输出 1f
原创文章转载请注明:转载自:PHP函数学习
发表评论
沙发空缺中,还不快抢~