PHP利用func_get_args和func_num_args函数实现函数重载实例(php func_get_args)
13
本文将分享PHP利用func_get_args和func_num_args函数实现函数重载实例的详细内容,并且还将对phpfunc_get_args进行详尽解释,此外,我们还将为大家带来关于func_
本文将分享PHP利用func_get_args和func_num_args函数实现函数重载实例的详细内容,并且还将对php func_get_args进行详尽解释,此外,我们还将为大家带来关于func_get_arg, func_get_args 和 func_num_args 函数、func_get_args () 在 php71 与 php56 的区别、func_get_args() func_get_arg(offset) func_num_args(); 函数使用、func_get_args() func_get_arg(offset) func_num_args(); 函数使用_PHP教程的相关知识,希望对你有所帮助。
本文目录一览:
PHP利用func_get_args和func_num_args函数实现函数重载实例(php func_get_args)
《PHP实战:PHP利用func_get_args和func_num_args函数实现函数重载实例》要点:
本文介绍了PHP实战:PHP利用func_get_args和func_num_args函数实现函数重载实例,希望对您有用。如果有疑问,可以联系我们。
本文实例讲述了PHP利用func_get_args和func_num_args函数实现函数重载的办法.分享给大家供大家参考.具体办法分析如下:PHP实例
学习PHP的朋友都知道PHP本身是没有函数重载这一说的,更没说像java,c那样使用办法,但如果我们深入了解一下会发现可以在PHP中使用func_get_args()和func_num_args()函数实现函数重载,下面来举两个函数重载例子.这两个函数实现函数的重载.PHP实例
1、默认参数,如果一个函数里面,这不是必须参数,而添加相应的默认值,就可以完成相应的功能,代码如下:
PHP实例
代码如下:
function overloadFun($param1,$param2 = '1',$param3 = true)
{
// do something
}
利用函数func_get_args()和call_user_func_array(),PHP代码如下:
代码如下:
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'); //调用func1
rewrite('PHP','China'); //调用func2
2、使用默认值,从而根据输入,得到自己想要的结果,代码如下:
代码如下:
function test($name="小李",$age="23"){
echo $name." ".$age;
}
test();
echo "<br/>";
test("a");
echo "<br/>";
test("a","b");
3、利用__call($name,$arg) 函数进行处理,代码如下:
代码如下:
<?PHP
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;
} PHP实例
function overloadFun2($var1,$var2)
{
echo $var1+$var2;
}
}
$test=new OverLoad();
$test->overloadFun()."<br />".
$test->overloadFun(1)."<br />".
$test->overloadFun(1,2)."<br />";
?>PHP实例
有了这样的办法之后我们就可以利用它们来实现简单函数重载了,但有一点要注明的是PHP 作为一种弱类型语言,本身不能像强类型如java,c++那样,直接的实现重载,至少现在不可以以后版本会不会有我们不知道.
希望本文所述对大家的PHP程序设计有所帮助.PHP实例
小编培训学院每天发布《PHP实战:PHP利用func_get_args和func_num_args函数实现函数重载实例》等实战技能,PHP、MysqL、LINUX、APP、JS,CSS全面培养人才。

func_get_arg, func_get_args 和 func_num_args 函数

func_get_args () 在 php71 与 php56 的区别
func_get_args () 获取函数的所有参数,返回一个数组
官方:http://www.php.net/manual/en/function.func-get-args.php
但是此函数在 php7 与 php56 中,有些使用时是有区别的,就是调用此函数前,如果参数被修改了,返回值是有区别的。
测试函数:
<?php
function foo($x) {
$x++;
var_dump(func_get_args());
}
foo(1);
在 php56 下测试
# php56 aa.php
array(1) {
[0]=>
int(1)
返回为 1,没有受函数内部修改影响。
在 php71 下测试
# php71 aa.php
array(1) {
[0]=>
int(2)
}
返回值为 2,因为 $x++ 而修改了 func_get_args 的返回值,类似的函数 func_get_arg () 同样存在这个问题,所以使用时以及 php 升级时需要注意。
原文:https://blog.csdn.net/u010889390/article/details/81667548
本文同步分享在 博客 “lxw1844912514”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。

func_get_args() func_get_arg(offset) func_num_args(); 函数使用
func_get_args是获取方法中参数的数组,返回的是一个数组,与func_num_args搭配使用;
func_get_arg是获取指定偏移量的参数
func_num_args统计参数个数
func_num_args一般写在方法中,用于计数;
使用方法如下:
[php]
function myargs($a=''para1'',$b=''para2''){
$numargs = func_num_args();
echo "Number of parameters : $numargs
\n";
if ($numargs >= 2) {
echo "Second parameters is: " . func_get_arg(1) . "
\n";
}
$arg_list = func_get_args();
for ($i = 0; $i
echo "parameters $i is: " . $arg_list[$i] . "
\n";
}
}
myargs(11, 22);
将会输出:
Number of parameters : 2
Second parameters is: 22
parameters 0 is: 11
parameters 1 is: 22
function myargs($a=''para1'',$b=''para2''){
$numargs = func_num_args();
echo "Number of parameters : $numargs
\n";
if ($numargs >= 2) {
echo "Second parameters is: " . func_get_arg(1) . "
\n";
}
$arg_list = func_get_args();
for ($i = 0; $i
echo "parameters $i is: " . $arg_list[$i] . "
\n";
}
}
myargs(11, 22);
将会输出:
Number of parameters : 2
Second parameters is: 22
parameters 0 is: 11
parameters 1 is: 22

func_get_args() func_get_arg(offset) func_num_args(); 函数使用_PHP教程
func_get_args是获取方法中参数的数组,返回的是一个数组,与func_num_args搭配使用;
func_get_arg是获取指定偏移量的参数
func_num_args统计参数个数
func_num_args一般写在方法中,用于计数;
使用方法如下:
[php]
function myargs($a=''para1'',$b=''para2''){
$numargs = func_num_args();
echo "Number of parameters : $numargs
\n";
if ($numargs >= 2) {
echo "Second parameters is: " . func_get_arg(1) . "
\n";
}
$arg_list = func_get_args();
for ($i = 0; $i
echo "parameters $i is: " . $arg_list[$i] . "
\n";
}
}
myargs(11, 22);
将会输出:
Number of parameters : 2
Second parameters is: 22
parameters 0 is: 11
parameters 1 is: 22
function myargs($a=''para1'',$b=''para2''){
$numargs = func_num_args();
echo "Number of parameters : $numargs
\n";
if ($numargs >= 2) {
echo "Second parameters is: " . func_get_arg(1) . "
\n";
}
$arg_list = func_get_args();
for ($i = 0; $i
echo "parameters $i is: " . $arg_list[$i] . "
\n";
}
}
myargs(11, 22);
将会输出:
Number of parameters : 2
Second parameters is: 22
parameters 0 is: 11
parameters 1 is: 22
http://www.bkjia.com/PHPjc/477547.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477547.htmlTechArticlefunc_get_args是获取方法中参数的数组,返回的是一个数组,与func_num_args搭配使用; func_get_arg是获取指定偏移量的参数 func_num_args统计参数个...
我们今天的关于PHP利用func_get_args和func_num_args函数实现函数重载实例和php func_get_args的分享已经告一段落,感谢您的关注,如果您想了解更多关于func_get_arg, func_get_args 和 func_num_args 函数、func_get_args () 在 php71 与 php56 的区别、func_get_args() func_get_arg(offset) func_num_args(); 函数使用、func_get_args() func_get_arg(offset) func_num_args(); 函数使用_PHP教程的相关信息,请在本站查询。