PHP实现函数重载实例使用func_get_args和func_num_args功能
本文的例子讲方法,PHP使用func_get_args和func_num_args功能实现函数重载。分享给你供你参考。具体方法如下:学习php的朋友都知道,PHP本身不是重载函数中说,但没有说喜欢java的方法,使用C,但是如果我们了解它将发现可以使用PHP(func_get_args)和func_num_args()函数实现以下功能超载,给两个例子。这两个函数重载实现了重载函数的功能。
1、默认参数,如果有一个函数,这不是一个参数,并且添加相应的默认值,就可以完成相应的功能,代码如下:
复制代码如下:功能overloadfun($参数,param2美元= 1,param3美元= true)
{
做某事
}
使用功能func_get_args()()和(),call_user_func_array PHP代码如下:
复制代码代码如下:函数重写(){
一美元= func_get_args();
(如果)(func_num_args = = 1){
func1($ args { 0 });
如果(func_num_args)} {(= = 2)
func2($ args { 0 },为args { 1 });
}
}
func1函数($ arg){
回应$;
}
函数func2($ arg1,arg2美元){
echo arg1,arg2美元;
}
重写('php '); / /调用func1
重写('php ',中国'); / /调用func2
2。使用默认值根据输入获得您想要的结果。代码如下:
复制代码如下:函数测试($ Xiao Li
回声名称。;
}
测试();
;
测试();
;
测试()
3、使用__call($name,$ Arg)函数处理,代码如下:
复制代码代码如下:< PHP
类重载{
功能__call($name,$ args)
{
如果($name = = 'overloadfun)
{
开关(计数($ args))
{
案例0:美元-> overloadfun0(打破);
案例1:美元-> overloadfun1($ args { 0 });突破;
案例2:美元-> overloadfun2($ args { 0 },{ 1 } $ args);突破;
默认情况下:做某事
打破;
}
}
}
overloadfun0()函数
{
回声0;
}
功能overloadfun1($ VAR1)
{
echo $变量;
}
功能overloadfun2($ var1,var2美元)
{
echo VAR1 + $ VAR2;
}
}
$ =新重载();
为测试-> overloadfun()。
为测试-> overloadfun(1)。。
为测试-> overloadfun(1,2)。;
>
用这种方法我们可以使用它们来实现一个简单的函数重载,但有一点要注意的是PHP是弱类型语言本身是没有类型如java的强大,C++,实现过载直接,至少不是现在以后我们不知道。
希望本文能对大家的PHP程序设计有所帮助。