覆盖php中的主类静态函数

时间:2014-10-01 07:48:58

标签: php class oop override

我有一个课程如下:

class Base {

  public static function test() {
     echo "A";
  }
}

现在我想创建一个新类,并使用Base类扩展它,以便我可以覆盖基类函数

 class Basenew extends Base{
   function test(){
     echo "B";
   }
 }

必须如下工作:

当我使用下面的代码时:

Base::test();

必须输出B而不是输出A

我怎么能在PHP中这样做。请帮忙。

1 个答案:

答案 0 :(得分:1)

首先,它是extends,而不是extend

其次,当你试图覆盖它时,你不能使静态方法非静态。

第三,如果你要覆盖,那么使用子类来查看更改,而不是基类。

<?php

class Base {

  public static function test() {
     echo "A";
  }
}

 class Basenew extends Base{
   static function test(){
     echo "B";
   }
 }

 Basenew::test();      //B
 Base::test();         //This will still say A because its still the parent class.

 ?>

<强> Fiddle