您的位置:首页 > 编程语言 > PHP开发

PHP面向对象之旅:再谈重载

2011-07-12 00:00 796 查看
当类中的方法名相同时,称为方法的重载(overload),重载是Java等面向对象语言中重要的一部分。在PHP5中不支持重载。

在PHP5中不支持重载。

先写一个取最大值的类。

<!--写一个类,让他自动完成最大值的换算.-->
<?
class Math {
//两个数值比较大小.
public function Max($a,$b)
{
return $a>$b?$a:$b;
}
}
$math = new Math();
echo "最大值是 ".$math->Max(99,100);
?>

程序运行结果为:

最大值是 100

如果传递过来三个数值。如何计算?下面的写法,在Java中是太平常不过了。但是在PHP5中,不能这样。

PHP5不支持有多个相同名称的方法,也就是不支持重载。

<!--写一个类,让他自动完成最大值的换算.-->
<?
class Math{
//两个数值比较大小.
public function Max($a,$b)
{
return $a>$b?$a:$b;
}
//三个数值比较大小.
public function Max($a,$b,$c)
{
$a = $this->Max($a,$b);
return $this->Max($a,$c);
}
}
$math = new Math();
echo "最大值是 ".$math->Max(99,100,88);
?>

程序运行结果为:

Fatal error: Cannot redeclare Math::Max() in E:\PHPProjects\test.php on line 10

对于一个方法,缺少参数时候会报错。

当参数太多的时候,PHP就当什么都没有看到。程序可以正常运行。

<!--写一个类,让他自动完成最大值的换算.-->
<?
class Math {
//两个数值比较大小.
public function Max($a,$b)
{
return $a>$b?$a:$b;
}
}
$math = new Math();
echo "最大值是 ".$math->Max(99,100,100,100);
?>

程序运行结果为:

最大值是 100
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: