переопределить статическую функцию основного класса в переполнении стека

У меня есть класс, как показано ниже:

class Base {

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

Теперь я хочу создать новый класс с расширением его базовым классом, чтобы я мог переопределить функцию базового класса

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

Это должно работать как ниже:

когда я использую код ниже:

Base::test();

Должен выводить B вместо вывода A

Как я могу сделать это в php. Пожалуйста помоги.

0

Решение

Прежде всего, это 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.

?>

скрипка

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]