PHP中函数覆盖和函数重载

函数重载和覆盖(也叫重写)是PHP中的OOP(面向对象)特性。在函数重载中,多个函数可以具有相同的方法名但参数的数量或类型不同。但是在函数重写的情况下,多个函数将具有相同的方法名和参数数量。

  1. 函数重载: 函数重载包含相同的函数名称,该函数根据参数的数量和类型执行不同的任务。在PHP中,函数重载是在魔术方法__call()的帮助下完成的。此函数采用函数名称和参数。函数重载:
<?php
class shape{
	function __call($name_function,$arguments){
		if($name_function=='area'){
			switch (count($arguments)){
				//如果一个参数,,圆的面积
				case 1:
					return 3.14*$arguments[0];
				//如果两个参数,矩形面积
				case 2:
					return $arguments[0]*$arguments[1];
			}
		}
	}
}
$s=new shape;
echo $s->area(2)."<br>";
echo $s->area(2,6);

输出结果为:6.28 12
2. 函数重写:函数重写与其他OOP编程语言相同。在函数重写中,父类和子类应具有相同的函数名和参数数量。它用于替换子类中的父方法。覆盖的目的是更改父类方法的行为。具有相同名称和相同参数的两个方法称为覆盖。实例:

class P{
	function demo(){
		echo "Parent";
	}
}

class C extends P{
	function demo(){
		echo "<br>Child";
	}
}

$p=new P;
$c=new C;
$p->demo();
$c->demo();

输出结果为:Parent Child

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章