Для целостности урока смею предложить вариант вариант развития:
для класса Cat объявить наследование от класса User (будто котики эволюционировали и стали полноценными пользователями ПК :) ) и ошибка пропадет сама собой, и код выполнится корректно (естественно тело класса Cat я стёр, чтобы не создавать лишнего свойства name) и получится законченная логически история с начала урока и до конца.
P.S.: просто по вашим урокам я пишу для себя вручную конспект и рискнул закончить его по-своему, не добавляя еще одного класса Admin :)
А вобщем, спасибо большое за урок! И извиняюсь если свой самовар в Тулу везу :)
С большим интересом перехожу дальше
<?php
class User
{
private $name;
public function __construct(string $name)
{
$this->name = $name;
}
public function getName(): string
{
return $this->name;
}
}
class Cat extends User
{
}
class Article
{
private $title;
private $text;
private $author;
public function __construct(string $title, string $text, User $author)
{
$this->title = $title;
$this->text = $text;
$this->author = $author;
}
public function getTitle(): string
{
return $this->title;
}
public function getText(): string
{
return $this->text;
}
public function getAuthor(): User
{
return $this->author;
}
}
$author = new User('Dmitry');
$cat = new Cat('Бразик');
$article = new Article('Заголовок', 'Текст', $cat);
echo 'Имя автора: ' . $article->getAuthor()->getName();
?>
Хотел бы поблагодарить Автора курса за его уроки.
Прошло лишь 3-4 дня, как я начал проходить ваш курс ООП в PHP с целью научиться писать плагины для сервера одной игры, а уже имеются результаты. Раньше я ничего не понимал в коде чужих плагинов и ядре самого сервера, даже проходя уроки на ютубе не понимал, но, дойдя до этого момента, решил проверить свои новоприобретённые знания и умения и зашёл в код ядра сервера. Результат меня поразил, я по большей части понимал код и понимал, что он делает. Конечно, я не всё понимал, всему своё время. Я точно знаю, что после прохождения этого курса буду понимать весь код, ведь в коде затрагивается уже следующая тема.
В общем, я ОЧЕНЬ благодарен автору!!!
Тут как посмотреть, свойства и методы классов помечаются ключевым словом static. Здесь же речь идет о свойствах и методах объектов. Да, описываем мы их конечно в классах, но принадлежат они объектам этих классов, в отличие от статических свойств и методов, принадлежащих классам.
Автору курсов, Артёму Ивашкевичу огромное спасибо.
Теперь просьба.
Сделайте так, чтобы была возможность менять тему страницы со светлой на тёмную, потому что при ярком мониторе глаза сильно устают.
Думаю что, многие поддержат такую идею.
Спасибо.
От себя добавлю: тайп-хинтинг(указание типов аргументов), как и типы возвращаемых значений - работают только начиная с php7.0. Чтобы быстрей переключаться с версий PHP и глянуть работу интерпретатора, можно это сделать через настройки phpStorm, не меняя ничего в настройках OpenServer и не перезагружая его.
Если мы в конструкторе статьи разрешим в качестве автора передавать только объекты класса Admin, то если туда передадим объект класса User, то скрипт упадёт с ошибкой, потому что не всякий User является Admin-ом
Я не совсем понял эту мысль я проверил но никакую ошибку не выдала система..можете подкреплять вашу мысль каким то примером ?
Имеется ввиду если class Admin extends User а в конструкторе Артикла прописать
public function __construct(string $title, string $text, Admin $author)
то
$author = new User('Вася');
$art = new Article('Заголовок', 'Текст', $author); - выдаст ошибку. И это действительно так.
Большое спасибо за очередной качественный урок! Всё еще учусь, и всё еще радуюсь подаче материала. С каждым уроком становится всё интереснее. Надеюсь, что уже скоро буду работать программистом =)
Класс)) правда не совсем пока все понятно, но думаю к концу курса наконец вьеду
Учитель. Что тут значит [2] и [1]?
Это просто номера объектов в кишках PHP. Сначала был создан объект User, потом Article.
О спасибо.
больше 2-3 уроков в день лучше не учить, а то что-то сильно голову забивает и в конечном итоге мало что понимаешь))
Конечно, пару уроков в день - это нормально. И домашку делать обязательно.
я бы с радостью проходил больше этих 2-3 уроков в день, но ежедневные обязанности не дают.(((
Классное начало ООП, надеюсь дальше будет так же интересно))
Дальше будет куда интереснее)
Спасибо! Переварить бы теперь полученные знания и научиться их применять)
Переварится, не переживай. У тебя отлично получается!
Для целостности урока смею предложить вариант вариант развития:
для класса Cat объявить наследование от класса User (будто котики эволюционировали и стали полноценными пользователями ПК :) ) и ошибка пропадет сама собой, и код выполнится корректно (естественно тело класса Cat я стёр, чтобы не создавать лишнего свойства name) и получится законченная логически история с начала урока и до конца.
P.S.: просто по вашим урокам я пишу для себя вручную конспект и рискнул закончить его по-своему, не добавляя еще одного класса Admin :)
А вобщем, спасибо большое за урок! И извиняюсь если свой самовар в Тулу везу :)
С большим интересом перехожу дальше
Интересный вариант развития событий :D
Ты безумен, но я не мог этого не написать!
Котики эволюционируют!
А-то!
Хотел бы поблагодарить Автора курса за его уроки.
Прошло лишь 3-4 дня, как я начал проходить ваш курс ООП в PHP с целью научиться писать плагины для сервера одной игры, а уже имеются результаты. Раньше я ничего не понимал в коде чужих плагинов и ядре самого сервера, даже проходя уроки на ютубе не понимал, но, дойдя до этого момента, решил проверить свои новоприобретённые знания и умения и зашёл в код ядра сервера. Результат меня поразил, я по большей части понимал код и понимал, что он делает. Конечно, я не всё понимал, всему своё время. Я точно знаю, что после прохождения этого курса буду понимать весь код, ведь в коде затрагивается уже следующая тема.
В общем, я ОЧЕНЬ благодарен автору!!!
Пожалуйста)
А не классы?
Тут как посмотреть, свойства и методы классов помечаются ключевым словом static. Здесь же речь идет о свойствах и методах объектов. Да, описываем мы их конечно в классах, но принадлежат они объектам этих классов, в отличие от статических свойств и методов, принадлежащих классам.
Автору курсов, Артёму Ивашкевичу огромное спасибо.
Теперь просьба.
Сделайте так, чтобы была возможность менять тему страницы со светлой на тёмную, потому что при ярком мониторе глаза сильно устают.
Думаю что, многие поддержат такую идею.
Спасибо.
Хорошо, возьму на заметку, спасибо за предложение)
От себя добавлю: тайп-хинтинг(указание типов аргументов), как и типы возвращаемых значений - работают только начиная с php7.0. Чтобы быстрей переключаться с версий PHP и глянуть работу интерпретатора, можно это сделать через настройки phpStorm, не меняя ничего в настройках OpenServer и не перезагружая его.
Если мы в конструкторе статьи разрешим в качестве автора передавать только объекты класса Admin, то если туда передадим объект класса User, то скрипт упадёт с ошибкой, потому что не всякий User является Admin-ом
Я не совсем понял эту мысль я проверил но никакую ошибку не выдала система..можете подкреплять вашу мысль каким то примером ?
Код в студию)
Имеется ввиду если class Admin extends User а в конструкторе Артикла прописать
public function __construct(string $title, string $text, Admin $author)
то
$author = new User('Вася');
$art = new Article('Заголовок', 'Текст', $author); - выдаст ошибку. И это действительно так.
Большое спасибо за очередной качественный урок! Всё еще учусь, и всё еще радуюсь подаче материала. С каждым уроком становится всё интереснее. Надеюсь, что уже скоро буду работать программистом =)
Так держать!