php面向对象的方法重载两种版本比较

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php面向对象的方法重载两种版本比较脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数PHP4 中仅仅实现了面向对象的部分的、简单功能,而 PHP5 以后对对象的支持就强大的多了。 对于多态的实现,PHP4 只支持覆盖(override),而不支持重载(overload)。但我们可以通过一些技巧来“模拟”重载的实现。 PHP5 虽然可以支持覆盖和重载,但重载在具体实现上,和其他语言还有较大的差别。 1,在 PHP4 中“模拟”重载 试看以下代码: <?PHP
//根据参数个数选择执行不同的方法(在 PHP4 中模拟"重载"(多态的一种) class Myclass
{
function Myclass()
{
$method = "method" . func_num_args();
$this->$method();
} function method1($x)
{
echo "method1";
} function method2($x,$y)
{
echo 'method2';
}
} //通过在类中的额外的处理,使用这个类对用户是透明的:
$obj1 = new Myclass('A'); //将调用 method1
$obj2 = new Myclass('B','C'); //将调用 method2
?> 以上代码中,通过在构造函数中使用 func_num_args() 函数取到参数的个数,自动执行 method1 或 method2 方法。我们可以结合函数 func_get_arg(i) 和 func_get_args() 对以上示例进行改进。 2,在 PHP5 中使用重载 先看以下示例: <div class="codetITle"><a style="CURSOR: pointer" data="34788" class="copybut" id="copybut34788" onclick="doCopy('code34788')"> 代码如下:

脚本宝典总结

以上是脚本宝典为你收集整理的php面向对象的方法重载两种版本比较全部内容,希望文章能够帮你解决php面向对象的方法重载两种版本比较所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。