


PHP objektorientiert – detaillierte Code-Erklärung der Objektserialisierung serialize(), __sleep(), __wakeup()
Manchmal ist es notwendig, ein Objekt in das Netzwerk hochzuladen und zu übertragen. Um die Übertragung zu erleichtern, kann das gesamte Objekt in eine Binärzeichenfolge umgewandelt und dann wiederhergestellt werden Wenn es am anderen Ende des Objekts ankommt, nennt man diesen Vorgang Serialisierung (auch Serialisierung genannt), genau wie wir jetzt ein Auto per Schiff in die USA transportieren wollen, da das Auto relativ groß ist, können wir es zerlegen Wir zerlegen das Auto in kleinere Teile, und dann transportieren wir diese Teile per Rad in die Vereinigten Staaten und bauen sie dann wieder in das Auto ein.
Laienhaft ausgedrückt ist Serialisierung eine Methode, die durch eine Variable dargestellten „Speicher“-Daten in eine „String“-Datenform umzuwandeln und sie während der Deserialisierung auf der Festplatte beizubehalten. Es handelt sich um einen umgekehrten Prozess.
Es gibt zwei Situationen, in denen wir Objekte serialisieren müssen. Die erste Situation ist, wenn ein Objekt über das Netzwerk übertragen wird, und die zweite Situation ist, wenn das Objekt in eine Datei oder Datenbank geschrieben wird.
Bei der Serialisierung gibt es zwei Prozesse, bei denen es sich um die Konvertierung eines Objekts in eine Binärzeichenfolge handelt, und bei dem anderen um die Deserialisierung (auch Deserialisierung genannt). die vom Objekt in ein Objekt umgewandelte Binärzeichenfolge. Wir verwenden die Funktion unserialize(), um ein Objekt zu deserialisieren.
Der Parameter der Funktion serialize() in PHP ist der Objektname und der Rückgabewert ist eine Zeichenfolge. Die von Serialize() zurückgegebene Zeichenfolge hat im Allgemeinen keine Analyse, um die Objektinformationen zu erhalten Wir müssen nur zurückgeben. Diese Zeichenfolge kann an das andere Ende des Netzwerks übertragen oder in einer Datei gespeichert werden.
Die Funktion unserialize() wird zum Deserialisieren von Objekten verwendet. Der Parameter dieser Funktion ist der Rückgabewert der Funktion serialize(). Die Ausgabe ist natürlich das reorganisierte Objekt.
Serialisierung von Objekten:
Die Serialisierung eines Objekts kann nur seine Attributdaten „speichern“, und die Methode ist Ignorieren (Methode ist keine Daten). )
Wenn ein Objekt serialisiert wird, wird die magische Methode der Klasse, zu der das Objekt gehört, automatisch aufgerufen: sleep()
Deserialisierung von Objekten:
Bei der Deserialisierung eines Objekts handelt es sich tatsächlich um die ursprünglich während der Wiederherstellungsphase gespeicherten Attributdaten, auf die Sie sich zu diesem Zeitpunkt verlassen müssen Die ursprüngliche Klasse des Objekts .
Wenn ein Objekt deserialisiert wird, wird die magische Methode der Klasse, zu der das Objekt gehört, automatisch aufgerufen: wakeup()
Alles serialisieren
1.serialize(object name)
Serialisiert das angegebene Klassenobjekt $str =serialize($per) // Das Per-Objekt serialisieren und das Ergebnis an $str zurückgeben
Serialisierungsmethode:
$v1 = 123; //这是一个变量,代表任意的内存数据$s1 = serialize( $v1 ); //将任何类型的变量数据,转换为“字符串” file_put_contents( '要保存的目标文本文件', $s1 ); //将该字符串,保存到一个文件里(就是硬盘数据)
2 .unserialize (Rückgabewert nach Serialisierung)
Deserialisierung, das Rückgabeergebnis ist ein Objekt $per=unserialize($str);
Deserialisierungsmethode:
$s1 = file_get_contens( '保存序列化数据的目标文本文件' ); //从一个文件里读出其中的所有字符 $v1 = unserialize($s1); //将该字符串数据,反序列化转换为变量(数据)
Beispiele für Serialisierung und Deserialisierung
<?phpclass Person{ var $name; var $sex; var $age; function construct($name = "", $sex = "", $age = "") { $this->name = $name; $this->sex = $sex; $this->age = $age; } function say() { echo "我的名字叫:" . $this->name . " 性别:" . $this->sex . " 我的年龄是:" . $this->age . "<br>"; } }$p1 = new Person("张三", "男", 20);$p1_string = serialize($p1); //把一个对象串行化,返一个字符串 echo $p1_string . "<br>"; //串行化的字符串我们通常不去解析//将$p1_string存储到文件file.txt中file_put_contents('./file.txt', $p1_string); $p2 = unserialize($p1_string); //把一个串行化的字符串反串行化形成对象 $p2$p2->say();//下面的做法和上面效果一样 $p3_file = file_get_contents('./file.txt'); //读取文件 $p3 = unserialize($p3_file); //反序列化 $p3->say();?>
Die Ausgabe des obigen Beispiels:
O:6:"Person":3:{s:4:"name";s:4:"张三";s:3:"sex";s:2:"男";s:3:"age";i:20;}我的名字叫:张三 性别:男 我的年龄是:20
Teilweise Serialisierung
1.sleep()
Serialisieren Sie einige Attribute eines Objekts.
2.wakeup()
Initialisieren (tatsächlich ändern) Sie beim Deserialisieren den Objektinhalt
In PHP5 gibt es Die beiden Magie Methoden: Sleep()-Methode und Wakeup()-Methode. Wenn das Objekt serialisiert wird, wird eine Sleep()-Methode aufgerufen, um einige Dinge vor dem Schlafengehen abzuschließen, und wenn es wieder aufwacht, wird eine Binärzeichenfolge neu gebildet. Objekt wird automatisch eine weitere PHP-Funktion wakeup() aufgerufen, um einige Aktionen auszuführen, die das Objekt ausführen wird, wenn es aufwacht. Die Funktion „sleep()“ akzeptiert keine Parameter, sondern gibt ein Array zurück, das die Eigenschaften enthält, die serialisiert werden müssen. Nicht enthaltene Attribute werden bei der Serialisierung ignoriert. Wenn keine Sleep()-Methode vorhanden ist, speichert PHP alle Attribute.
<?class Person{ var $name; var $sex; var $age; function construct($name = "", $sex = "", $age = "") { $this->name = $name; $this->sex = $sex; $this->age = $age; } function say() { echo "我的名字叫:" . $this->name . " 性别:" . $this->sex . " 我的年龄是:" . $this->age . "<br>"; } //指定串行化时把返回的数组中$name和$age值串行化,忽略没在数组中的属性$sex function sleep() { $arr = array("name", "age"); // 此时,属性$sex将被删除!!! return($arr); } //重新生成对象时,并重新赋值$age为40 function wakeup() { $this->age = 40; } }$p1 = new Person("张三", "男", 20);//把一个对象串行化,返一个字符串,调用了sleep()方法,忽略没在数组中的属性 $sex$p1_string = serialize($p1); echo $p1_string . "<br>"; //串行化的字符串我们通常不去解析 $p2 = unserialize($p1_string); //反串行化形成对象$p2重新赋值 $age为40 $p2->say();?>
Die Ausgabe des obigen Beispiels ist:
O:6:"Person":2:{s:4:"name";s:4:"张三";s:3:"age";i:20;}我的名字叫:张三 性别: 我的年龄是:40
Das obige ist der detaillierte Inhalt vonPHP objektorientiert – detaillierte Code-Erklärung der Objektserialisierung serialize(), __sleep(), __wakeup(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
