| PHP Ръководство | ||
|---|---|---|
| Предишна страница | Глава 19. Класове и обекти (PHP 5) | Следваща страница |
Създаването на копие на обект с абсолютно идентични свойства не винаги е желания вариант. Добър пример за необходимостта от копиране на конструкторите е ситуацията, в която имате обект който представлява GTK прозорец и съдържа ресурсите на този GTK прозорец, когато създадете копие на този обект, може да искате да създадете нов прозорец със същите свойства и новият обект да съдържа ресурсите на новия прозорец. Като друг пример може да послужи ситуацията, в която вашият обект използва референция към друг обект, който използва и когато създадете копие на родителския обект, искате да се създаде нова инстанция и на другия обект, така че и той да си има свое собствено копие.
Копие на обект се създава посредством ключовата дума clone (която извиква метода __clone() на обекта, ако е възможно). Методът __clone() не може да бъде извикан директно.
Когато се създаде копие на обекта, PHP5 ще създаде нова инстанция на обекта, с негово собствено копие на свойствата. Всички свойства, които са референции към други променливи ще си останат референции, т.е. няма да се извърши дълбочинно копиране. Ако е дефиниран метод __clone(), ще бъде извикан метода __clone() на новосъздадения обект, за да може в случай на нужда да се променят стойностите на някои свойства.
| Предишна страница | Начало | Следваща страница |
| Ключова дума final | Начало на раздела | Сравняване на обекти |