Como copiar PHP Objects

PHP fornece um método que você pode usar para copiar um objeto. O método é __clone, com dois sublinhados. Você pode escrever seu próprio __clone método em uma classe se você deseja especificar instruções a serem executadas quando o objeto é copiado. Se você não escrever o seu próprio, PHP usa seu padrão __clone método que copia todas as propriedades como é.

Como mostrado pelos dois sublinhados começam o seu nome, o método de clonagem é um tipo diferente de processo, e assim é chamado de forma diferente, como mostrado no exemplo a seguir.

Você poderia escrever a seguinte classe:

class Car {private $ gás = $ cor 0-privada = "red" addGas -Function ($ quantidade) {$ this-> gás = $ this-> gás + $ montante echo "$ quantidade de galões adicionado ao tanque de gás" - } function __clone () {$ this-> gás = 5}}

Usando essa classe, você pode criar um objeto e copiá-lo, como segue:

$ FirstCar = new Car- $ firstCar-> addGas (10) - $ secondCar = clone $ firstCar-

Após estas declarações, você tem dois carros:

  • $ firstCar: Este carro é vermelho e contém dez litros de gasolina. Os dez galões foram adicionados com o addGas método.

  • $ secondCar: Este carro é vermelho, mas contém cinco litros de gasolina. O carro duplicado é criado usando o __clone método no Carro classe. Este método define gás para 5 e não configura $ cor de todo.

Se você não tiver um __clone método no Carro classe, PHP usaria um padrão __clone método que copiar todas as propriedades, tornando $ secondCar vermelho e contendo dez litros de gasolina.

menu