La différence entre php4 et php5 : 1. Il n'y a pas de destructeur en php4, mais il y a un destructeur en php5 ; 2. Lors du passage d'une variable à une fonction ou une méthode en php4, la variable est en fait copiée une fois, alors qu'en php5 Les objets existent toujours comme références.
L'environnement d'exploitation de ce tutoriel : système Windows 10, PHP version 7.1, ordinateur DELL G3
Constructeur et destructeur
En PHP4, quand la fonction a la même name comme object , cette fonction deviendra le constructeur de l'objet, et il n'y a pas de concept de destructeur en PHP4.
En PHP5, le constructeur est uniformément nommé __construct, et le concept de destructeur est introduit, qui est uniformément nommé __destruct.
Exemple 1 : Constructeur et destructeur
class foo {undefined var $x; function __construct($x) {undefined $this->x = $x; } function display() {undefined print($this->x); } function __destruct() {undefined print("bye bye"); } } $o1 = new foo(4); $o1->display(); ?>
Dans l'exemple ci-dessus, lorsque vous terminez l'appel à la classe foo, son destructeur sera appelé et "bye bye" sera affiché dans l'exemple ci-dessus.
Référence d'objet
Comme nous le savons tous, en PHP4, passer une variable à une fonction ou une méthode crée en fait une copie de la variable, ce qui signifie que ce que vous transmettez à la fonction ou à la méthode est une copie de la variable, à moins que vous utilisé le symbole de référence "&" pour déclarer que vous souhaitez faire une référence et non une copie. En PHP5, les objets existent toujours sous forme de références, et les opérations d'affectation dans les objets sont également des opérations de référence.
Exemple 2 : Référence d'objet
class foo {undefined var $x; function setX($x) {undefined $this->x = $x; } function getX() {undefined return $this->x; } } $o1 = new foo; $o1->setX(4); $o2 = $o1; $o1->setX(5); if($o1->getX() == $o2->getX()) print("Oh my god!"); ?>
Clone d'objet
Comme mentionné ci-dessus, lorsqu'un objet est toujours appelé comme référence, que dois-je faire si je souhaite obtenir une copie de l'objet ? PHP5 fournit une nouvelle fonctionnalité, le clonage d'objets, avec la syntaxe __clone.
Exemple 3 : Clonage d'objets
class foo {undefined var $x; function setX($x) {undefined $this->x = $x; } function getX() {undefined return $this->x; } } $o1 = new foo; $o1->setX(4); $o2 = $o1->__clone(); $o1->setX(5); if($o1->getX() != $o2->getX()) print("Copies are independant"); ?>
La méthode de clonage d'objet existe dans de nombreux autres langages d'application, vous n'avez donc pas à vous soucier de sa stabilité. :)
Modes privé, public et protégé dans les objets
En PHP4, toutes les méthodes et variables d'un objet sont publiques, ce qui signifie que vous pouvez utiliser n'importe quelle variable et méthode en dehors d'un objet. PHP5 introduit trois nouveaux modes pour contrôler ces autorisations d'accès : Public, Protégé et Privé.
Mode Public (Public) : Permet le contrôle des opérations en dehors de l'objet.
Mode privé (Privé) : seules les méthodes de cet objet sont autorisées à le faire fonctionner et à le contrôler.
Mode protégé (Protégé) : Permet à cet objet et à son objet parent de le faire fonctionner et de le contrôler.
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!