Egy objektum másolatának az elkészítéséhez az összes tulajdonság teljes másolásával nem mindig eredményezi a várt viselkedést. Egy jó példa, amikor a konstruktorok másolata szükséges, ha neked van egy objektumod ami GTK ablakot képvisel, és te létre akarsz hozni egy új ablakot ugyanazokkal a tulajdonságokkal hogy az új objektum tárolja a forrását az új ablaknak. Másik példa ha a te objektumod referenciát tárol egy másik objektumhoz, és ha te létre akarsz hozni egy másolat objektumot, amiben ennek a másik objektumnak is külön másolata lesz.
Egy objektum másolatát a clone kulcsszó használatával lehet létrehozni (ami meghívja az objektum __clone() metódusát, ha lehetséges). Az objektum __clone() metódusa nem hívható meg közvetlenül.
Amikor egy objektum klónozott, a PHP 5 létrehoz egy felületes másolatot az objektum tulajdonságairól. Valamennyi tulajdonság, ami referencia más változókhoz, referencia fog maradni. Ha a _clone() metódus definiált, az újonnan elkészített objektum __clone() metódusa fog meghívódni, hogy engedélyezze bármely szükség esetén a tulajdonságok cseréjét.