Home  >  Article  >  Backend Development  >  PHP uses func_get_args and func_num_args functions to implement function overloading examples, funcnumargs_PHP tutorial

PHP uses func_get_args and func_num_args functions to implement function overloading examples, funcnumargs_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:14:05924browse

PHP uses func_get_args and func_num_args functions to implement function overloading examples, funcnumargs

The example in this article describes how PHP uses the func_get_args and func_num_args functions to implement function overloading. Share it with everyone for your reference. The specific method analysis is as follows:

Friends who study PHP all know that PHP itself does not have function overloading, let alone how to use it like Java and C. But if we take a deeper look, we will find that we can use func_get_args() and func_num_args in PHP. The () function implements function overloading. Here are two examples of function overloading. These two functions implement function overloading.

1. Default parameters. If this is not a required parameter in a function, and the corresponding default value is added, the corresponding function can be completed. The code is as follows:

Copy code The code is as follows:
function overloadFun($param1, $param2 = '1',$param3 = true)
{
// do something
}

Using functions func_get_args() and call_user_func_array(), the PHP code is as follows:
Copy code The code is as follows:
function rewrite() { 
$args = func_get_args();
if(func_num_args() == 1) { 
func1($args[0]);
} else if(func_num_args() == 2) { 
func2($args[0], $args[1]);


 
function func1($arg) {
echo $arg;

 
function func2($arg1, $arg2) {
echo $arg1, ' ', $arg2;

 
rewrite('PHP'); //Call func1
rewrite('PHP','China'); //Call func2

2. Use the default value to get the results you want based on the input. The code is as follows:
Copy code The code is as follows:
function test($name="Xiao Li",$age="23"){ 
echo $name." ".$age;

test();
echo "
";
test("a");
echo "
";
test("a","b");

3. Use the __call($name, $arg) function for processing. The code is as follows:
Copy code The code is as follows:
class OverLoad{
function __call($name, $args)
{
if($name=='overloadFun')
{
switch(count($args))
{
case 0: $this->overloadFun0();break;
Case 1: $this->overloadFun1($args[0]); break;
case 2: $this->overloadFun2($args[0], $args[1]); break;
default: //do something
Break;
}  
}
}
     
function overloadFun0()
{
echo 0;
}

function overloadFun1($var1)
{
echo $var1;
}

function overloadFun2($var1,$var2)
{
 
echo $var1 $var2;
}  

$test=new OverLoad();
$test->overloadFun()."
".
$test->overloadFun(1)."
".
$test->overloadFun(1,2)."
";
?>


With such methods, we can use them to implement simple function overloading, but one thing to note is that PHP, as a weakly typed language, cannot directly implement overloading like strongly typed languages ​​such as Java and C. Download, at least not now, we don’t know if it will be available in future versions.

I hope this article will be helpful to everyone’s PHP programming design.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/910603.htmlTechArticlePHP uses the func_get_args and func_num_args functions to implement function overloading examples, funcnumargs This article describes the example of PHP using the func_get_args and func_num_args functions. Function overloading method. Share...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn