本文主要和大家分享PHP之面向对象多态实例详解,多态是指在面向对象中能够根据使用类的上下文来重新定义或改变类的性质和行为,PHP不支持重载实现多态,但是PHP可以变向的实现多态效果。
如下:
class a{ function test($i){ // $i可以是任何类型的变量
print_r $i;
}
}上例,可以看出由于php是弱类型语言,所以$i可以是任何类型的变量,这样一个函数就可以实现如java等强类型语言中靠改变参数类型重载方法的多态形式。
这种形式比JAVA的参数类型重载更便捷高效,但也存在问题,如下:
draw();
}
}class Polygon{ function draw(){ echo "draw a polygon";
}
}class Circle{ function draw(){ echo "draw a circle";
}
}?>可以看出这样灵活的多态,需要一些控制,在PHP5.3以后可以对参数做类型限制,如下:
// 仿java,在变量参数前加一个限制类名
function drawPolygon(Polygon $polygon){
$polygon->draw();
}这样就限制了只能传入Polygon及其子类。
还有一只是改变参数数量的重载,同样是因为PHP也不支持方法的重载,所以也需要些变通的方法实现,如下:
立即学习“PHP免费学习笔记(深入)”;
citySHOP是一款集CMS、网店、商品、分类信息、论坛等为一体的城市多用户商城系统,已完美整合目前流行的Discuz! 6.0论坛,采用最新的5.0版PHP+MYSQL技术。面向对象的数据库连接机制,缓存及80%静态化处理,使它能最大程度减轻服务器负担,为您节约建设成本。多级店铺区分及联盟商户地图标注,实体店与虚拟完美结合。个性化的店铺系统,会员后台一体化管理。后台登陆初始网站密匙:LOVES
相关推荐:










