您好,欢迎访问一九零五行业门户网

php利用func_get_arg,func_get_args,func_num_args实现伪重载

偶尔在网上看到关于php的伪重载的问题,有点兴趣便研究了一下。下面作者将说说php如何利用func_get_arg,func_get_args,func_num_args实现函数的伪重载问题。
首先说说方法重载的好处:
实现方法重载可以不用为了对不同的参数类型或参数个数,而写多个函数。多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。如果我们使用reflector去查看微软写的.net的基类库的话,我们可以发现他使用很多的方法重载,这样我们在调用的时候,就不需要记那么多的方法名称,而是知道了方法的功能就可以直接的给他传递不同的参数,编译器会明确的知道我们调用了哪一个方法。
但是在php中没有函数重载这个概念,让很多时候我们无法进行一些处理,甚至有时候不得不在函数后面定义好n个参数来解决相关问题,而php提供了几个函数,比如:func_get_arg,func_get_args,func_num_args 却可以直接解决相关问题。具体举个示例代码如下:
test2($_arg[0], $_arg[1]); break; default : $this->a = 0; $this->b = 1; break; } } function test1($a) { $this->a = $a; } function test2($a, $b) { $this->a = $a; $this->b = $b ; }}
您可能感兴趣的文章php利用session_set_save_handler()函数将session保存到mysql数据库中php 利用 curl functions 实现多线程抓取网页和下载文件php利用array_flip实现数组键值交换去除数组重复值关于使用in_array() foreach array_search() 查找数组是否包含时的性能对比php利用filter函数验证邮箱、url和ip地址的方法用php函数memory_get_usage获取当前php内存消耗量以实现程序的性能优化php在数组中查找某个值是否存在(in_array(),array_search(),array_key_exists())php中file_get_contents于curl性能效率比较
其它类似信息

推荐信息