У меня есть класс, как показано ниже:
class Base {
public static function test() {
echo "A";
}
}
Теперь я хочу создать новый класс с расширением его базовым классом, чтобы я мог переопределить функцию базового класса
class Basenew extends Base{
function test(){
echo "B";
}
}
Это должно работать как ниже:
когда я использую код ниже:
Base::test();
Должен выводить B
вместо вывода A
Как я могу сделать это в php. Пожалуйста помоги.
Прежде всего, это 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.
?>
Других решений пока нет …