Page 57 - 4636
P. 57

конструкторів,  деструктор  класу  повинен  мати  ім'я  __destruct  ().  Деструктори  не  можуть  приймати
        параметри.
           Створення екземплярів класу
           Після оголошення класу необхідно створити об'єкт - конкретний примірник, який є членом класу, з
        яким буде виконуватися робота. Цей процес називають також створенням примірників (instantiating)
        класу.  Об'єкт  створюється  за  допомогою  ключового  слова  new.  При  цьому  потрібно  зазначити,
        примірником якого класу буде об'єкт, і надати всі параметри, які необхідні конструктору. Наведений
        нижче код оголошує клас classname з конструктором, а потім створює три об'єкта типу classname:
           class classname {
           function construct($param) {
           echo "Конструктор викликаний з параметром ".$param."<br />";
           }
           }
           $a = new classname("Перший");
           $b = new classname("Другий");
           $c = newclassname();
           Оскільки  конструктор  викликається  при  кожному  створення  об'єкта,  цей  код  генерує  наступний
        висновок:  конструктор  викликаний  з  параметром,  перший  конструктор  викликаний  з  параметром,
        другий конструктор викликаний з параметром.
           Використання атрибутів класу
           Всередині  класу  ви  отримуєте  доступ  до  спеціального  вказівника  з  ім'ям  $this.  Якщо  атрибут
        вашого поточного класу має  ім'я $attribute, він вказується при занесенні або виборі значення в
        операції всередині класу таким чином:
           $this->attribute
           Наступний код служить прикладом установки атрибутів і звернення до них всередині класу:
           class classname {
           var $attribute;
           function operation($param){
           $this->attribute = $param echo $this->attribute;
           }
           }
           Можливість  доступу  до  атрибуту  ззовні  класу  визначається  модифікаторами  доступу.  Клас,  код
        якого наведено вище, ніяк не обмежує доступ до атрибуту, тому до нього можна звернутися так, як
        показано нижче:
           class classname {
           var $attribute;
           }
           $a = new classname();
           $a->attribute = "value";
           echo $a->attribute;
           Прямий  доступ  до  атрибутів  за  межами  класу  зазвичай  не  особливо  гарна  ідея.  Одна  з  переваг
        об'єктно-орієнтованого  підходу  полягає  в  тому,  що  він  використовує  інкапсуляцію.  Для  цього
        призначені  функції  __get  і  __set.  Якщо  замість  прямого  доступу  до  атрибутів  класу  створити
        функції  доступу  (accessor  function),  весь  доступ  буде  здійснюватися  через  один  розділ
        програмного коду. Початковий варіант функцій доступу може мати такий вигляд:
           classclassname {
           var $attribute;
           function __get($name) {
           return $this->$name;
           }
           Function __set($name, $value) {
           $this->$name = $value;
                                                            54
   52   53   54   55   56   57   58   59   60   61   62