Tutorial zum Serialisieren von Serialisierungsobjekten in PHP

巴扎黑
Freigeben: 2023-03-14 20:00:01
Original
2251 Leute haben es durchsucht

Speicherung und Übertragung von Objekten

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.

Tutorial zum Serialisieren von Serialisierungsobjekten in PHPSerialisiertes Objekt

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] )
Nach dem Login kopieren

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);
?>
Nach dem Login kopieren

Ö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;}
Nach dem Login kopieren

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();
?>
Nach dem Login kopieren

Ausführen des Beispiels, Ausgabe:

我的名字叫:张三
我的年龄是:20
Nach dem Login kopieren
Nach dem Login kopieren
Tipps
  1. 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.

  2. 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.

    Tutorial zum Serialisieren von Serialisierungsobjekten in PHPDas Objekt wird als Sitzungsvariable registriert

    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);
    ?>
    Nach dem Login kopieren

    Lesesitzung:

    name = $name;
            $this->age = $age;
        }
    
        function say() {
    	echo "我的名字叫:".$this->name."
    ";
    	echo " 我的年龄是:".$this->age;
        }
    }
    
    $_SESSION["p1"] -> say();
    ?>
    Nach dem Login kopieren

    Führen Sie dieses Beispiel aus, Ausgabe:

    我的名字叫:张三
    我的年龄是:20
    Nach dem Login kopieren
    Nach dem Login kopieren

    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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!