Наследование ооп

Код (Text):
  1.  
  2. <?php
  3.  
  4. class Lesson {
  5.     private $title;
  6.     private $text;
  7.     private $homework;
  8.     function __construct($title, $text, $homework) {
  9.        $this->title = $title . $this->text = $text . $this->homework = $homework;
  10.     }
  11.     function setLess() {
  12.        return  $this->title . $this->text . $this->homework;
  13.     }
  14.     function getLess ($title , $text, $homework) {
  15.         $this->title = $title . $this->text = $text . $this->homework = $homework;
  16.     }
  17.     function getInfo () {
  18.         $inf =  $this->title . $this->text . $this->homework;
  19.         return $inf;
  20.     }
  21.  
  22. }
  23. class PaidLesson extends Lesson {
  24.     private $price;
  25.     function __construct($title, $text, $homework, $price) {
  26.         parent::__construct($title, $text, $homework);
  27.         $this->price= $price;
  28.     }
  29.     function setPaid() {
  30.         return $this->price;
  31.     }
  32.     function getPaid($price) {
  33.         $this->price = $price;
  34.     }
  35.     function getInfo() {
  36.         $inf = parent::getInfo() . $this->price;
  37.         return $inf;
  38.     }
  39. }
  40. $HomeWork = new PaidLesson(» Урок о наследовании», » Лол, кек, чебурек» , » спать», » 99.90″);
  41. echo $HomeWork->getInfo();

Вроде бы все работает, но я где-то намудрил и на выходе у меня дважды дублируется $text и трижды $homework. Подскажите где я ошибся, сам не понимаю.

 

а кто вас такой чепухе учил?
вы сами попробуйте объяснить что делает эта строка?
скорее всего нужно было

PHP:
  1. $this->title = $title ;
  2. $this->text = $text ;
  3. $this->homework = $homework;

остальное тоже не блещет… обычно (по названию и по смыcлу) set — это устанавливает значение, а get — получает, у вас же наоборот все + опять неразбериха с многократным =

адекватно делают обычно так:

PHP:
  1. function setLess($title , $text, $homework) {
  2.    $this->title = $title;
  3.    $this->text = $text;
  4.    $this->homework = $homework;
  5. }
  6. function getLess () {
  7.   return [‘title’ => $title , ‘text’ => $text, ‘homework’ => $homework];
  8. }

кароче вы должны понимать что вы делаете и зачем, а не слепо все подряд лепить

 

Спасибо за ответ

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *