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程序设计有所帮助。