函数重载是一项功能,它允许创建多个名称相似的方法,这些方法在其作为参数接受的输入参数的类型上彼此不同。
现在让我们看一个实现函数重载的例子:
<?php class Shape { const PI = 3.142 ; function __call($name,$arg){ if($name == 'area') switch(count($arg)){ case 0 : return 0 ; case 1 : return self::PI * $arg[0] ; case 2 : return $arg[0] * $arg[1]; } } } $circle = new Shape(); echo $circle->area(3); $rect = new Shape(); echo $rect->area(8,6); ?>
9.42648
在函数覆盖中,父类和子类具有相同的函数名称,并带有参数数目
现在让我们看一个实现功能覆盖的示例-
<?php class Base { function display() { echo "\n基类函数声明为final!"; } function demo() { echo "\n基类函数!"; } } class Derived extends Base { function demo() { echo "\n派生类函数!"; } } $ob = new Base; $ob->demo(); $ob->display(); $ob2 = new Derived; $ob2->demo(); $ob2->display(); ?>
基类函数! 基类函数声明为final! 派生类函数! 基类函数声明为final!