Cómo copiar objetos php
PHP proporciona un método que puede utilizar para copiar un objeto. El método es __clone, con dos guiones bajos. Usted puede escribir su propio __clone método en una clase si desea especificar sentencias que se ejecutarán cuando se copia el objeto. Si usted no escribe su propio, PHP utiliza su valor predeterminado __clone método que copia todas las propiedades como es.
Como se muestra por los dos guiones que comienzan su nombre, el método clon es un tipo diferente de método, y por lo tanto se llama de manera diferente, como se muestra en el siguiente ejemplo.
Se puede escribir la siguiente clase:
clase Car {$ privada de gas = $ color 0-privada = "red" addGas -Función ($ cantidad) {$ this-> gas = $ this-> gas + $ cantidad echo "$ cantidad de galones añadido al tanque de gasolina" - } function __clone () {$ this-> gas = 5}}
El uso de esta clase, se puede crear un objeto y copiarlo, de la siguiente manera:
$ firstCar = new Car- $ firstCar-> addGas (10) - $ secondCar = clone $ firstCar-
Después de estas declaraciones, usted tiene dos coches:
$ firstCar: Este coche es de color rojo y contiene diez galones de gasolina. Los diez galones se añadieron con el addGas método.
$ secondCar: Este coche es de color rojo, pero contiene cinco galones de gasolina. El coche duplicado se ha creado usando el __clone método en el Auto clase. Este método establece el gas 5 y no establece $ color en absoluto.
Si no tiene un __clone método en el Auto clase, PHP usará por defecto __clone método que copiar todas las propiedades, por lo que $ secondCar rojo y contiene diez galones de gasolina.