Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Analyse der Verwendung von Serialize und Deserialize in PHP

Eine kurze Analyse der Verwendung von Serialize und Deserialize in PHP

PHPz
PHPzOriginal
2023-03-24 14:57:241405Durchsuche

PHP ist eine beliebte Programmiersprache, die häufig für die Webentwicklung verwendet wird. Unter diesen sind Serialize und Deserialize zwei sehr nützliche Funktionen, die PHP-Objekte in Strings konvertieren und deserialisieren können.

  1. Verwendung von serialize

serialize ist eine PHP-Funktion, die zum Konvertieren von PHP-Objekten in Strings verwendet wird, die gespeichert oder übertragen werden können. Die grundlegende Syntax lautet wie folgt:

$serialized_string = serialize($object);

Darunter ist $object das zu serialisierende PHP-Objekt und $serialized_string ist die Zeichenfolge, die nach der Serialisierung des Objekts erhalten wird.

Angenommen, wir haben ein PHP-Objekt namens $person, dessen Attribute Name, Alter und Geschlecht umfassen:

$person = new stdClass;
$person->name = "Tom";
$person->age = 30;
$person->gender = "male";

Wir können serialize verwenden, um es in eine Zeichenfolge zu serialisieren:

$serialized_person = serialize($person);

Sie können $serialized_person über die Echo-Anweisung View ausgeben Die nach der Serialisierung erhaltene Zeichenfolge lautet:

echo $serialized_person;

Das Ausgabeergebnis lautet:

O:8:"stdClass":3:{s:4:"name";s:3:"Tom";s:3:"age";i:30;s:6:"gender";s:4:"male";}

Sie können sehen, dass das $person-Objekt erfolgreich in eine lange Zeichenfolge konvertiert wurde. Diese Zeichenfolge enthält alle Eigenschaften des Objekts sowie den Typ und die Länge jeder Eigenschaft.

Allerdings ist zu beachten, dass der serialisierte String nicht direkt zur Anzeige oder Speicherung verwendet werden kann, da er viele Sonderzeichen enthält und schwer zu lesen und zu verarbeiten ist.

  1. Verwendung von unserialize

unserialize ist die Umkehrfunktion von serialize und wird zum Konvertieren serialisierter Zeichenfolgen in PHP-Objekte verwendet. Die grundlegende Syntax lautet wie folgt:

$object = unserialize($serialized_string);

Darunter ist $serialized_string die zu deserialisierende Zeichenfolge und $object das nach der Deserialisierung erhaltene PHP-Objekt.

Zum Beispiel können wir die serialisierte Zeichenfolge $serialized_person im vorherigen Beispiel verwenden und sie in ein neues PHP-Objekt deserialisieren:

$unserialized_person = unserialize($serialized_person);

Wir können die Funktion var_dump($unserialized_person) verwenden, um zu überprüfen, ob das deserialisierte Objekt korrekt ist.

Das Ausgabeergebnis ist:

object(stdClass)#2 (3) {
  ["name"]=>
  string(3) "Tom"
  ["age"]=>
  int(30)
  ["gender"]=>
  string(4) "male"
}

Sie können sehen, dass die Deserialisierung erfolgreich war und ein neues stdClass-Objekt $unserialized_person erhalten wurde, dessen Attribute genau mit denen von $person übereinstimmen.

  1. Serialisieren von Arrays und Objekten

Im obigen Beispiel haben wir gezeigt, wie Serialisierung und Deserialisierung für stdClass-Objekte verwendet werden. Sie können jedoch auch andere PHP-Arrays und -Objekte verarbeiten.

Angenommen, wir haben ein Array mit Informationen über mehrere Schüler:

$students = array(
  array("name" => "Tom", "age" => 20, "gender" => "male"),
  array("name" => "Alice", "age" => 22, "gender" => "female"),
  array("name" => "Bob", "age" => 21, "gender" => "male"),
);

Wir können $students in eine Zeichenfolge serialisieren:

$serialized_students = serialize($students);

und diese über die Funktion unserialize in ein neues Array deserialisieren:

$unserialized_students = unserialize($serialized_students);

Sie können auch verwenden die Funktion var_dump($unserialized_students), um zu überprüfen, ob das nach der Deserialisierung erhaltene Array konsistent ist.

  1. Was beim Serialisieren zu beachten ist

Bei der Verwendung von Serialisieren und Deserialisieren müssen Sie die folgenden Punkte beachten:

(1) Nur Objekte mit öffentlichen Attributen können serialisiert werden.

(2) Die serialisierte Zeichenfolge bezieht sich auf die PHP-Version und das Betriebssystem. Verschiedene PHP-Versionen können zu unterschiedlichen Serialisierungsergebnissen führen.

(3) Das Serialisierungsergebnis enthält alle Eigenschaften und Methoden des Objekts, daher müssen Sie auf den Schutz privater Eigenschaften und Methoden achten.

  1. Zusammenfassung

serialize und unserialize sind zwei sehr wichtige Funktionen in PHP, die PHP-Objekte in Strings konvertieren und deserialisieren können. Sie können uns dabei helfen, Daten bei der Webentwicklung bequem zu speichern und zu übertragen. Bei der Verwendung müssen Sie auf die Eigenschaften und Zugriffsrechte des Objekts sowie auf die Serialisierungsunterschiede zwischen verschiedenen PHP-Versionen achten.

Das obige ist der detaillierte Inhalt vonEine kurze Analyse der Verwendung von Serialize und Deserialize in PHP. 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