Maison  >  Article  >  développement back-end  >  Une brève analyse de l'utilisation de sérialiser et de désérialiser en php

Une brève analyse de l'utilisation de sérialiser et de désérialiser en php

PHPz
PHPzoriginal
2023-03-24 14:57:241486parcourir

PHP est un langage de programmation populaire couramment utilisé pour le développement Web. Parmi elles, sérialiser et unsérialiser sont deux fonctions très utiles qui permettent de convertir des objets PHP en chaînes et de les désérialiser.

  1. Utilisation de Serialize

serialize est une fonction PHP utilisée pour convertir des objets PHP en chaînes pouvant être stockées ou transférées. La syntaxe de base est la suivante :

$serialized_string = serialize($object);

Parmi eux, $object est l'objet PHP à sérialiser, et $serialized_string est la chaîne obtenue après sérialisation de l'objet.

Par exemple, supposons que nous ayons un objet PHP nommé $person dont les attributs incluent le nom, l'âge et le sexe :

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

Nous pouvons utiliser serialize pour le sérialiser en une chaîne :

$serialized_person = serialize($person);

Vous pouvez afficher $serialized_person via l'instruction echo View la chaîne obtenue après sérialisation :

echo $serialized_person;

Le résultat de sortie est :

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

Vous pouvez voir que l'objet $person a été converti avec succès en une longue chaîne. Cette chaîne contient toutes les propriétés de l'objet, ainsi que le type et la longueur de chaque propriété.

Cependant, il convient de noter que la chaîne sérialisée ne peut pas être directement utilisée pour l'affichage ou le stockage, car elle contient de nombreux caractères spéciaux et est difficile à lire et à traiter.

  1. Utilisation de unserialize

unserialize est la fonction inverse de sérialiser et est utilisée pour convertir des chaînes sérialisées en objets PHP. La syntaxe de base est la suivante :

$object = unserialize($serialized_string);

Parmi eux, $serialized_string est la chaîne à désérialiser, et $object est l'objet PHP obtenu après désérialisation.

Par exemple, nous pouvons utiliser la chaîne sérialisée $serialized_person dans l'exemple précédent et la désérialiser en un nouvel objet PHP :

$unserialized_person = unserialize($serialized_person);

Nous pouvons utiliser la fonction var_dump($unserialized_person) pour inspecter l'objet désérialisé. Est-ce correct.

Le résultat de sortie est :

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

Vous pouvez voir que la désérialisation est réussie et un nouvel objet stdClass $unserialized_person est obtenu, dont les attributs sont exactement les mêmes que $person.

  1. Sérialisation de tableaux et d'objets

Dans l'exemple ci-dessus, nous avons démontré comment la sérialisation et la désérialisation sont utilisées pour les objets stdClass. Cependant, ils peuvent également gérer d’autres tableaux et objets PHP.

Par exemple, supposons que nous ayons un tableau contenant des informations sur plusieurs étudiants :

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

Nous pouvons sérialiser $students en une chaîne :

$serialized_students = serialize($students);

et le désérialiser dans un nouveau tableau via la fonction de désérialisation :

$unserialized_students = unserialize($serialized_students);

Vous pouvez également utiliser la fonction var_dump($unserialized_students) pour vérifier si le tableau obtenu après désérialisation est cohérent.

  1. Choses à noter lors de la sérialisation

Lors de l'utilisation de la sérialisation et de la désérialisation, vous devez faire attention aux points suivants :

(1) Seuls les objets ayant des propriétés publiques peuvent être sérialisés.

(2) La chaîne sérialisée est liée à la version PHP et au système d'exploitation. Différentes versions de PHP peuvent produire des résultats de sérialisation différents.

(3) Le résultat de la sérialisation contient toutes les propriétés et méthodes de l'objet, vous devez donc faire attention à la protection des propriétés et méthodes privées.

  1. Résumé

serialize et unsérialize sont deux fonctions très importantes en PHP, qui peuvent convertir des objets PHP en chaînes et les désérialiser. Ils peuvent nous aider à stocker et transmettre facilement des données lors du développement Web. Lors de son utilisation, vous devez faire attention aux propriétés et aux droits d'accès de l'objet, ainsi qu'aux différences de sérialisation entre les différentes versions de PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn