Comment copier des objets PHP

PHP fournit une méthode que vous pouvez utiliser pour copier un objet. Le procédé est __clone, avec deux caractères de soulignement. Vous pouvez écrire votre propre __clone méthode dans une classe si vous souhaitez spécifier instructions à exécuter lorsque l'objet est copié. Si vous ne pas écrire votre propre, PHP utilise sa valeur par défaut __clone méthode qui copie tous les propriétés comme est.

Comme le montrent les deux caractères de soulignement commençant son nom, le procédé de clonage est un type de procédé différent, et donc est appelé différemment, comme montré dans l'exemple suivant.

Vous pouvez écrire la classe suivante:




class Voiture {private $ gaz = $ couleur 0-privé = "red" addGas de -Fonction (montant $) {$ this-> gaz = $ this-> gaz + $ Montant-echo "gallons $ de montant ajouté au réservoir de gaz" - } function __clone () {$ this-> gaz = 5}}

En utilisant cette classe, vous pouvez créer un objet et de le copier, comme suit:

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

Après ces déclarations, vous avez deux voitures:

  • $ firstCar: Cette voiture est rouge et contient dix gallons d'essence. Les dix gallons ont été ajoutés avec le addGas Procédé.

  • $ secondCar: Cette voiture est rouge, mais contient cinq gallons d'essence. La voiture en double est créée en utilisant l' __clone Procédé de la Car classe. Cette méthode définit gaz 5 et ne pas régler $ couleur du tout.

Si vous ne disposez pas d'un __clone Procédé de la Car classe, PHP va utiliser un défaut __clone méthode qui permettrait de copier toutes les propriétés, ce qui rend $ secondCar à la fois rouge et contenant dix litres de gaz.


» » » » Comment copier des objets PHP