Упражнение по кодированию
В нашем теоретическом уроке вы узнали, что класс может реализовывать более одного интерфейса. На этом практическом занятии мы сделаем еще один шаг вперед, позволив одному и тому же дочернему классу наследовать как родительский класс, так и два интерфейса.
Создайте класс User с защищенным свойством $username и методами, которые могут устанавливать и получать значение $username.
Блокнот, чтобы попрактиковаться в кодировании *Этот код не сохраняется и никуда не отправляется*
//Ваш код
Создайте интерфейс Author включающий в себя абстрактные методы, которые могут предоставить пользователю массив авторских прав. Первый метод - это setAuthorPrivileges() и он получает параметр $array, а второй метод - это getAuthorPrivileges().
Блокнот, чтобы попрактиковаться в кодировании *Этот код не сохраняется и никуда не отправляется*
//Ваш код
Создайте интерфейс Editor с методами предназначенными для установки и получения прав редактора.
Блокнот, чтобы попрактиковаться в кодировании *Этот код не сохраняется и никуда не отправляется*
//Ваш код
Создайте класс AuthorEditor, который расширяет класс User и реализует интерфейсы Author и Editor.
Блокнот, чтобы попрактиковаться в кодировании *Этот код не сохраняется и никуда не отправляется*
//Ваш код
Создайте в классе AuthorEditor методы, которые он должен реализовать, и свойства, которые требуются этим методам.
Например, чтобы реализовать публичный метод setAuthorPrivileges(), мы должны добавить в наш класс свойство, которое содержит массив авторских прав, и назвать его соответственно $authorPrivilegesArray.
Блокнот, чтобы попрактиковаться в кодировании *Этот код не сохраняется и никуда не отправляется*
//Ваш код
Теперь давайте создадим объект с именем $user1 из класса AuthorEditor и установим имя пользователя "Max".
Блокнот, чтобы попрактиковаться в кодировании *Этот код не сохраняется и никуда не отправляется*
//Ваш код
Задайте в объекте $user1 массив авторских прав со следующими привилегиями: "писать текст", "добавлять знаки препинания".
Блокнот, чтобы попрактиковаться в кодировании *Этот код не сохраняется и никуда не отправляется*
//Ваш код
Задайте в объекте $user1 массив со следующими правами редактора: "редактировать текст", "редактировать пунктуацию".
Блокнот, чтобы попрактиковаться в кодировании *Этот код не сохраняется и никуда не отправляется*
//Ваш код
Напишите код для получения имени и привилегий $user1:
Ожидаемый результат:
Max имеет следующие права: писать текст, добавлять знаки препинания, редактировать текст, редактировать пунктуацию.
Блокнот, чтобы попрактиковаться в кодировании *Этот код не сохраняется и никуда не отправляется*
//Ваш код
Примечание: array_merge — сливает элементы одного или большего количества массивов таким образом, что значения одного массива присоединяются к концу предыдущего. Результатом работы функции является новый массив.
Примечание: implode — объединяет элементы массива в строку и возвращает строку, содержащую строковое представление всех элементов массива в указанном порядке, с разделителем между каждым элементом (в нашем примере ", "
).