PHP 函数重载和函数重写

PHP中的函数重载

函数重载是一项功能,它允许创建多个名称相似的方法,这些方法在其作为参数接受的输入参数的类型上彼此不同。

例子

现在让我们看一个实现函数重载的例子:

<?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中的函数重写

在函数覆盖中,父类和子类具有相同的函数名称,并带有参数数目

例子

现在让我们看一个实现功能覆盖的示例-

<?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!