php 重载
2014-02-25 00:11
246 查看
php 作为一种弱类型语言,本身不能像强类型如java ,c++那样,直接的实现重载。不过可以通过一些方法,间接的实现重载。
1.使用一个统一的函数来实现重载。该方法要使用func_get_args()和func_num_args()方法。
2.使用默认值,从而根据输入,得到自己想要的结果。
3.当对象试着调用不存在或者受权限限制的方法时,__call()方法会被自动调用,从而可以实现类型重载的效果。该方法是php5新增的方法。
1.使用一个统一的函数来实现重载。该方法要使用func_get_args()和func_num_args()方法。
<?php function test1($name){ echo $name; } function test2($name,$age){ echo $name.$age; } function load(){ //返回输入的元素数目 $num=func_num_args(); //返回输入元素列表的数组形式 $arr=func_get_args(); if($num==1){ test1($arr[0]); }else { test2($arr[0],$arr[1]); } } load("a"); echo "<br/>"; load("a","b"); ?>
2.使用默认值,从而根据输入,得到自己想要的结果。
<?php function test($name="小李",$age="23"){ echo $name." ".$age; } test(); echo "<br/>"; test("a"); echo "<br/>"; test("a","b"); ?>
3.当对象试着调用不存在或者受权限限制的方法时,__call()方法会被自动调用,从而可以实现类型重载的效果。该方法是php5新增的方法。
<?php class A{ //name :调用的方法名字。args:参数列表 function __call($name,$args){ $num=count($args); if($num==1){ $this->test1($args[0]); } else { $this->test2($args[0],$args[1]); } } function test1($name){ echo $name; } function test2($name, $age){ echo $name." ".$age; } } $a=new A(); $a->a("a"); echo "<br/>"; $a->a("a","b"); ?>
相关文章推荐
- PHP 面向对象:方法重载
- PHP 类与对象(重载)
- php深入学习三——面向对象以及函数重载
- php面向对象笔记6 类的重写和重载
- php中的重载以及几个常用的魔术方法示例
- func_get_arg,func_get_args,func_num_args实现PHP伪重载
- 【PHP方法重载介绍】
- PHP基础之 重载 的实现方式
- PHP学习笔记 PHP的“重载”
- php __call()的用法之面向对象重载
- PHP实现函数重载
- PHP重载
- php面向对象全攻略 (八)重载新的方法
- PHP使用方法重载实现动态创建属性的get和set方法
- php 5 方法的重载
- php魔术方法——属性重载方法
- PHP那些事:面向对象的方法重载
- php面向对象的方法重载两种版本比较
- PHP防止页面刷新与重载