Цель работы
Получить навыки работы с классами и объектами в PHP 5. Освоить следующие возможности объектной модели в PHP 5: модификаторы области видимости (private, public, protected), клонирование, константы, наследование, специальные методы (__clone, __construct)
Описание работы
Выполнить следующие пункты задания, объяснить результат# | Задание |
---|---|
1 |
Описать класс NotePad, содержащий
|
2 | Создать экземпляр $note1 класса NotePad. Вызвать метод note_show. Вывести значение TEXT_SIZE без использования метода note_show |
3 | Добавить в класс конструктор, принимающий три аргумента и устанавливающий значение свойств $phone, $name и $surname соответственно. Создать экземпляр $note2 класса NotePad. Вывести значение свойств класса с помощью метода note_show |
4 | Определить метод __clone() так, чтобы при клонировании значение свойств $phone, $name, $surname обнулялось. Создать копию $note2_copy объекта $note2. Вызвать метод note_show для объекта $note2_copy |
5 |
Создать класс NoteChild, наследующий NotePad. В классе NoteChild переопределите метод note_show следующим образом: а) note_show выводит имя текущего класса (см. набор предопределенных констант magic constants); a) note_show выводит строку "Вызов родительского метода note_show ..."; б) вызывает метод note_show родительсткого класса |
6 | Создать объект $child1 класса NoteChild. Вызвать метод note_show. Создать копию $child1_copy объекта $child1. Вывести значение свойств $phone, $name, $surname для объекта $child1_copy |
7 |
Добавить в класс NoteChild метод cut_note, который обрезает строковые значения свойств $phone, $name, $surname до
максимальной длины, разрешенной значением константы TEXT_SIZE. Создать объект $child2 класса NoteChild и вызвать
для него метод cut_note. Вывести значения свойств $phone, $name, $surname для объекта $child2. Чтобы обрезать строки можно использовать функции для мультибайтовых строк mb_substr или mb_strcut, установив значение кодировки "UTF-8". Обратите внимание на ошибку при обращении к частному (private) свойству $phone. Измените модификатор области видимости для $phone, чтобы избежать ошибки. |