Translations:Developers/Object oriented programming in PHP/Objects/10/ru

При помощи clone все свойства клонируемого объекта копируются в новый объект. Свойства, содержащие скалярные типы или массивы просто копируются при назначении, но, если свойства клонируемого объекта сами содержат идентификаторы объектов, то копируются лишь эти идентификаторы. В результате получим два разных объекта, свойства которых указывают на одни и те же объекты. Чтобы обойти это и фактически скопировать объекты, связанные со свойствами клонируемого объекта, в определении класса клонируемого объекта должен быть реализован волшебный метод __clone. В этом методе __clone при помощи всё того же ключевого слова clone могут быть клонированы объекты, на которые ссылаются его свойства: