Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen PHP4 und PHP5?

Was ist der Unterschied zwischen PHP4 und PHP5?

WBOY
WBOYOriginal
2022-02-11 15:34:541910Durchsuche

Der Unterschied zwischen PHP4 und PHP5: 1. Es gibt keinen Destruktor in PHP4, aber einen Destruktor in PHP5. 2. Wenn eine Variable an eine Funktion oder Methode in PHP4 übergeben wird, wird die Variable tatsächlich einmal kopiert, während sie in PHP5 vorhanden ist Objekte existieren immer als Referenzen.

Was ist der Unterschied zwischen PHP4 und PHP5?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, PHP-Version 7.1, DELL G3-Computer

Was ist der Unterschied zwischen PHP4 und PHP5

Konstruktor und Destruktor

In PHP4, wenn die Funktion dieselbe ist Wenn Sie den Namen als Objekt verwenden, wird diese Funktion zum Konstruktor des Objekts, und in PHP4 gibt es kein Konzept für einen Destruktor.

In PHP5 heißt der Konstruktor einheitlich __construct und das Konzept des Destruktors wird eingeführt, das einheitlich __destruct heißt.

Beispiel 1: Konstruktor und Destruktor

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();
?>

Wenn Sie im obigen Beispiel den Aufruf der Klasse foo beenden, wird deren Destruktor aufgerufen und im obigen Beispiel wird „bye bye“ ausgegeben.

Objektreferenz

Wie wir alle wissen, wird in PHP4 durch die Übergabe einer Variablen an eine Funktion oder Methode tatsächlich eine Kopie der Variablen erstellt, was bedeutet, dass das, was Sie an die Funktion oder Methode übergeben, eine Kopie der Variablen ist, es sei denn, Sie haben das Referenzsymbol „&“ verwendet, um anzugeben, dass Sie eine Referenz und keine Kopie erstellen möchten. In PHP5 existieren Objekte immer in Form von Referenzen, und Zuweisungsoperationen in Objekten sind ebenfalls Referenzoperationen.

Beispiel 2: Referenz eines Objekts

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!");
?>

Klon eines Objekts

Wie oben erwähnt: Wenn ein Objekt immer als Referenz aufgerufen wird, was soll ich tun, wenn ich eine Kopie des Objekts erhalten möchte? PHP5 bietet eine neue Funktion, nämlich das Klonen von Objekten, mit der Syntax __clone.

Beispiel 3: Objektklonen

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");
?>

Die Methode zum Klonen von Objekten gibt es in vielen anderen Anwendungssprachen, sodass Sie sich keine Sorgen um deren Stabilität machen müssen. :)

Privater, öffentlicher und geschützter Modus in Objekten

In PHP4 sind alle Methoden und Variablen eines Objekts öffentlich, was bedeutet, dass Sie jede der Variablen und Methoden außerhalb eines Objekts bedienen können. PHP5 führt drei neue Modi zur Steuerung dieser Zugriffsberechtigungen ein: Öffentlich, Geschützt und Privat.

  • Öffentlicher Modus (Öffentlich): Ermöglicht die Betriebssteuerung außerhalb des Objekts.

  • Privater Modus (Privat): Nur Methoden innerhalb dieses Objekts dürfen es bedienen und steuern.

  • Geschützter Modus (Geschützt): Ermöglicht diesem Objekt und seinem übergeordneten Objekt, es zu bedienen und zu steuern.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen PHP4 und PHP5?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn