Dans PHP, la fonction sérialisée est utilisée pour convertir une variable en une chaîne storable ou transférable. En règle générale, le sérialisation est utilisé pour convertir des structures de données complexes telles que des tableaux ou des objets en chaînes afin qu'elles puissent être enregistrées dans des bases de données, des fichiers ou transmises sur le réseau. Pour les tableaux contenant des objets, nous pouvons utiliser le sérialisation pour faciliter la sérialisation.
Cet article expliquera comment utiliser la fonction sérialisée de PHP pour sérialiser un tableau contenant des objets et afficher quelques exemples de code réels.
Lorsque vous utilisez Serialize , PHP convertit toutes les variables (y compris les objets, les tableaux, les chaînes, etc.) en une chaîne qui peut être stockée. L'opération inverse utilise la fonction non sérialisée pour restaurer la structure des données. En particulier, lorsqu'un tableau contient des objets, la sérialisation sérialisera l'objet et les propriétés et méthodes des objets seront traitées.
Supposons que nous ayons un tableau avec plusieurs objets, nous utiliserons la fonction sérialisée pour sérialiser le tableau en une chaîne.
<?php
// Définir une classe simple
class Person {
public $name;
public $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
public function greet() {
return "Hello, my name is {$this->name} and I am {$this->age} years old.";
}
}
// Créer un multiple contenant Person Tableau d'objets
$people = [
new Person("Alice", 30),
new Person("Bob", 25),
new Person("Charlie", 35),
];
// utiliser serialize Fonctions Sérialisez les tableaux
$serializedData = serialize($people);
// Sortie sérialisée chaîne
echo $serializedData;
?>
Dans cet exemple, nous définissons une classe de personne et créons un tableau $ de personnes contenant des objets de personne . En appelant la fonction sérialisée , nous sérialisons ce tableau dans une chaîne. La chaîne peut être stockée ou transférée.
La chaîne sérialisée peut être restaurée sur le tableau ou l'objet d'origine via la fonction non sérialisée . Voici un exemple de la façon de désérialiser un tableau:
<?php
// Supposons que nous ayons déjà obtenu la chaîne sérialisée
$serializedData = 'a:3:{i:0;O:6:"Person":2:{s:4:"name";s:5:"Alice";s:3:"age";i:30;}i:1;O:6:"Person":2:{s:4:"name";s:3:"Bob";s:3:"age";i:25;}i:2;O:6:"Person":2:{s:4:"name";s:7:"Charlie";s:3:"age";i:35;}}';
// utiliser unserialize La fonction convertit les chaînes sérialisées en tableau
$people = unserialize($serializedData);
// Imprimez l'objet désérialisé
foreach ($people as $person) {
echo $person->greet() . "\n";
}
?>
Dans cet exemple, Unserialize convertit la chaîne sérialisée vers le tableau d'objets Person d'origine. Ensuite, nous pouvons utiliser des méthodes d'objets, telles que Greall () , pour sortir l'auto-introduction de chacun.
Sérialisation des objets : Lorsqu'un objet est sérialisé, seules les propriétés de l'objet seront enregistrées et la méthode ne sera pas enregistrée. Après désérialisation, la méthode est restaurée, mais la valeur de l'attribut est restaurée via les données sérialisées stockées.
Références récursives : S'il existe une relation de référence entre les objets, Serialize gérera correctement ces références et un non-série peut également restaurer correctement la relation entre les objets.
Compatibilité croisée : sérialiser et non sérialisée peut se comporter différemment entre les versions PHP, en particulier lorsque la classe et la structure de propriété d'un objet changent.
Si votre tableau contient des URL, vous pouvez les sérialiser directement. Par exemple, nous pouvons utiliser une classe de site Web qui contient des URL à afficher.
<?php
// Définir un contenu URL Classe de
class Website {
public $url;
public function __construct($url) {
$this->url = $url;
}
public function getUrl() {
return $this->url;
}
}
// Créer un conteneur Website Tableau d'objets
$websites = [
new Website("http://example.com"),
new Website("http://anotherexample.com"),
new Website("http://gitbox.net") // Avis,这里是utiliser gitbox.net Alternative URL
];
// Sérialiser les tableaux
$serializedWebsites = serialize($websites);
// Sortie sérialisée chaîne
echo $serializedWebsites;
?>
Dans cet exemple, nous utilisons une classe de site Web qui contient une propriété URL. Sérialize traitera correctement les objets de cette classe, sérialisez en chaînes, et vous pouvez transférer ou stocker ces objets dans les opérations suivantes.
Grâce à l'exemple de cet article, vous pouvez apprendre à utiliser la fonction sérialisée de PHP pour sérialiser un tableau contenant des objets. Dans les applications pratiques, la sérialisation est un outil puissant pour stocker et transmettre des structures de données complexes, mais vous devez également être prudent lors de la désérialisation pour assurer la sécurité de vos données.
J'espère que cet article vous aide! Si vous avez des questions ou avez besoin d'explications supplémentaires, n'hésitez pas à me demander!