Heim >Backend-Entwicklung >PHP-Tutorial >Tutorial zum Serialisieren von Serialisierungsobjekten in PHP
In tatsächlichen Projektanwendungen können einige Aufgaben nicht auf einer oder zwei Seiten erledigt werden, da die Variablen nach der Ausführung des Skripts freigegeben werden, was wir auf dieser Seite generiert haben Beim Versuch, das Objekt auf anderen Seiten zu verwenden, sind Probleme aufgetreten.
Wenn wir das Objekt und seine Methoden an die Seite übergeben müssen, auf der wir das Objekt verwenden möchten, besteht eine einfachere und praktikablere Möglichkeit darin, das Objekt zu serialisieren und zu speichern oder es direkt auf die Seite zu übertragen, auf der es sich befindet Eine andere Möglichkeit ist die Registrierung als Sitzungsvariable.
Bei der Objektserialisierung geht es darum, das Objekt in einen speicherbaren Bytestrom umzuwandeln. Wenn wir ein Objekt über das Netzwerk übertragen oder in eine Datei oder Datenbank schreiben müssen, müssen wir das Objekt serialisieren.
Der gesamte Serialisierungsprozess umfasst zwei Schritte: Der eine ist die Serialisierung, bei der das Objekt in eine Binärzeichenfolge umgewandelt wird. Die Funktion „serialize()“ wird zum Serialisieren eines Objekts verwendet Konvertieren Sie das Objekt in eine Binärzeichenfolge. Das Objekt wird in eine Binärzeichenfolge serialisiert und dann in ein Objekt umgewandelt. Die Funktion unserialize() wird verwendet, um ein serialisiertes Objekt zu deserialisieren. Auf diese Weise sind nach dem gesamten Prozess die Typstruktur und die Daten im Objekt vollständig.
Syntax:
string serialize( mixed value ) mixed unserialize( string str [, string callback] )
Beispiel:
name = $name; $this->age = $age; } function say() { echo "我的名字叫:".$this->name." "; echo " 我的年龄是:".$this->age; } } $p1 = new Person("张三", 20); $p1_string = serialize($p1); //将对象序列化后写入文件 $fh = fopen("p1.text", "w"); fwrite($fh, $p1_string); fclose($fh); ?>
Öffnen Sie die Datei p1.text. Der darin geschriebene Inhalt lautet wie folgt:
O:6:"Person":2:{s:12:" Person name";s:4:"张三";s:11:" Person age";i:20;}
Normalerweise werden die durch die obige Serialisierung generierten Zeichen jedoch nicht direkt analysiert.
Deserialisierung:
name = $name; $this->age = $age; } function say() { echo "我的名字叫:".$this->name." "; echo " 我的年龄是:".$this->age; } } $p2 = unserialize(file_get_contents("p1.text")); $p2 -> say(); ?>
Ausführen des Beispiels, Ausgabe:
我的名字叫:张三 我的年龄是:20
Aufgrund der Serialisierung können Objekte nicht ausgeführt werden Serialisieren Sie ihre Methoden. Beim Deserialisieren muss die aktuelle Datei also die entsprechende Klasse enthalten oder die entsprechende Klassendatei erfordern.
Serialisierung kann nur mit eingeschränkten Benutzern verwendet werden, da Dateien für jeden Benutzer separat gespeichert oder geschrieben werden müssen und der Dateiname nicht wiederholt werden darf. Für den Fall, dass der Benutzer den Browser nicht normal beenden kann, gibt es keine Garantie dafür, dass die Datei gelöscht wird.
Wenn es eine große Anzahl von Benutzern gibt, können Sie erwägen, die Sitzung zum Speichern des Objekts zu verwenden. Weitere Informationen zu Sitzungen finden Sie unter „PHP-Sitzung“.
Beispiel:
name = $name; $this->age = $age; } function say() { echo "我的名字叫:".$this->name." "; echo " 我的年龄是:".$this->age; } } $_SESSION["p1"] = new Person("张三", 20); ?>
Lesesitzung:
name = $name; $this->age = $age; } function say() { echo "我的名字叫:".$this->name." "; echo " 我的年龄是:".$this->age; } } $_SESSION["p1"] -> say(); ?>
Führen Sie dieses Beispiel aus, Ausgabe:
我的名字叫:张三 我的年龄是:20
Das Gleiche wie bei der Serialisierung. Wenn die Das registrierte Objekt ist eine Sitzungsvariable und seine Methode kann nicht gespeichert werden. Daher muss beim Lesen der Sitzungsvariablen die aktuelle Datei die entsprechende Klasse oder die erforderliche Klassendatei enthalten.
Das obige ist der detaillierte Inhalt vonTutorial zum Serialisieren von Serialisierungsobjekten in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!