首先,因为PHP是弱类型语言,是不直接支持重载的,不过可以通过一些方法来实现重载。

先说一下重写

在子类继承父类方法后,自己重新定义父类的方法,包含函数名,形参(个数,顺序)完全相同,但权限修饰符可不同,子类的的权限修饰符应该大于等于父类的权限修饰符。

    class Animal{
public function cat($var1,$var2)
{
echo 'Hello,'.$var1.$var2;
}
} class Small extends Animal{
public function cat($a1, $a2){
echo 'cat cat cat!!!'.$a1.$a2;
}
} $a = new Small();
$a->cat(,); $b = new Animal();
$b->cat('laibao','hh');

重载,多态的一种形式,通过对同一函数传值的不同,来获取不同的逻辑处理。但PHP是弱类型语言,不像JAVA、C++一样强类型,直接支持重载,不过 可以通过以下方式来间接的实现重载。

<?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==){
test1($arr[]);
}else {
test2($arr[],$arr[]);
}
} load("a");
echo "";
load("a","b");
?>
<?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 "";
$a->a("a","b"); ?>

最新文章

  1. 自定义刻度的SeekBar
  2. mysql密码遗忘和登陆报错问题
  3. 分批次获取git for windows的源代码
  4. 仿酷狗音乐播放器开发日志二十六 duilib在标题栏弹出菜单的方法
  5. CI 笔记 easyui 结合后,左侧导航跳转问题
  6. springMVC整合memcached,以注解形式使用
  7. onSaveInstanceState()和onRestoreInstanceState()方法
  8. 不是技术牛人,如何拿到国内IT巨头的Offer (转载)
  9. hdu5635 BestCoder Round #74 (div.2)
  10. Unity 读写文本 文件
  11. 软件推荐-c#绘图插件echart
  12. PowerBI开发 第十五篇:DAX 表达式(时间+过滤+关系)
  13. ATM+购物车商城
  14. 关于java和c语言中,变量重名问题
  15. JTAG TAP Controller
  16. 【CF739E】Gosha is hunting 贪心
  17. Ecshop 2.x_3.x SQL注入和代码执行漏洞复现和分析
  18. 003--MySQL 数据库事务
  19. python基础知识体系
  20. Windows系统常用修复命令 无须重装系统

热门文章

  1. CSS:CSS 颜色名
  2. vscode实现列编辑
  3. jQuery基本语法2
  4. Cpython 解释器下实现并发编程
  5. jquery table表格 获取选中的某一行和某一列的值
  6. tensorflow weight_variable going
  7. 51nod 1102 【单调栈】
  8. NGUI研究院之UISprite和UITexture浅谈
  9. Codevs 1523 地精部落
  10. [Xcode 实际操作]八、网络与多线程-(3)使用UIApplication对象拨打电话