Копия объекта создается с использованием оператора clone. Для указания собственной логики поведения объектов при клонировании необходимо переопределить функцию __clone(), которая будет вызвана после копирования всех полей исходного объекта в новый.
class Article { … // функция клонирования увеличивает значение поля id нового объекта на единицу function __clone() { $this->id = $this->id + 1; } … } $a = new Article(1, 'Заголовок', 'Содержание'); $b = clone $a; $a->view(); // выведет статью с id == 1 $b->view(); // выведет статья с id == 2