Я просто пытаюсь вычислить цену площади прямоугольника вне класса прямоугольника, который возвращает его площадь. Просто пробую пример полиморфизма. Я делаю что-то неправильно?
Я новичок в ООП подход. Вот мой код:
// getting the area
class Rectangle{
public $height;
public $width;
public function __construct($height, $width){
$this->height = $height;
$this->width = $width;
}
public function getArea(){
return $this->height * $this->width. "<br />";
}
}
Вне класса я создал функцию `getPrice ()
`function getPrice(Rectangle $rectangle){
return $rectangle->getArea() * 0.25;
}
Создание экземпляра и распечатка.
$rectangle = new Rectangle(12, 15);
echo getPrice();
Отображение ошибки:
Исправляемая фатальная ошибка: Аргумент 1, передаваемый в getPrice (), должен быть экземпляром Rectangle, не заданным, и вызываться в /var/www/html/crashcourse/oop_php/phpacademy/polymorphism.php в строке 41 и определяться в / var / www / html / crashcourse / oop_php / phpacademy / polymorphism.php в строке 31
Обратите внимание, что функция getPrice () имеет параметр $ rectangle класса Rectangle класса, вам нужно передать объект Rectangle, который является экземпляром класса.
Сделайте следующее:
$ rectangle = new Rectangle (12, 15);
echo getPrice ($ rectangle);
Других решений пока нет …