Почему один и тот же код отрабатывает по разному?

У меня есть три класса:
class Animal {
    public $type;

    public function getInfo(){
        return "It's are {$this->type}";
    }

    public function giveResource($min, $max){
        return rand($min, $max);
    }
}

class Chiken extends Animal {

    public $type = "chiken";

    public function getInfo(){
        return Animal::getInfo();
    }

    public function giveResource(){
        return Animal::giveResource(8, 12);
    }
}

class Cow extends Animal {
    public $type = "cow";

    public function getInfo(){
        return Animal::getInfo();
    }

    public function giveResource(){
        return Animal::giveResource(8, 12);
    }
}

giveResource в Chiken не исполняется, выдает ошибку:
Declaration of Chiken::giveResource() must be compatible with Animal::giveResource($min, $max)
При этом giveResource в Cow отрабатывает, до тех пор, пока не поменять название функции в Chiken, тогда функция в Cow показывает такую же ошибку.
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Просто интерпретатор доходит до первой фатальной ошибки и прекращает выполнение программы. Для проверки поменяйте местами классы Cow и Chicken.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы