Maison > développement back-end > Problème PHP > Quelle est la différence entre php4 et php5

Quelle est la différence entre php4 et php5

WBOY
Libérer: 2023-03-15 09:38:01
original
1956 Les gens l'ont consulté

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.

Quelle est la différence entre php4 et php5

L'environnement d'exploitation de ce tutoriel : système Windows 10, PHP version 7.1, ordinateur DELL G3

Quelle est la différence entre php4 et php5

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();
?>
Copier après la connexion

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!");
?>
Copier après la connexion

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");
?>
Copier après la connexion

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!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal