简明现代魔法 -> PHP服务器脚本 -> PHP 面向对象:再谈重载

PHP 面向对象:再谈重载

2010-04-20

当类中的方法名相同时,称为方法的重载(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
随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们