Maison > Article > développement back-end > Que signifie la sérialisation php ?
La sérialisation est le processus de conversion d'une variable en une chaîne qui peut être enregistrée ou transmise ; la désérialisation consiste à convertir cette chaîne en la variable d'origine au moment approprié pour son utilisation. Ces deux processus se combinent pour stocker et transférer facilement des données, rendant le programme plus facile à maintenir.
La sérialisation et la désérialisation en PHP peuvent être réalisées via les fonctions serialize() et unserialize() respectivement.
string serialize ( mixed value )
serialize() renvoie une chaîne qui contient un flux d'octets représentant la valeur et peut être stockée n'importe où. (Apprentissage recommandé : Programmation PHP du débutant à compétent)
Ceci est bénéfique pour stocker ou transférer des valeurs PHP sans perdre son type et sa structure.
Si vous souhaitez rétablir la chaîne sérialisée en valeur PHP, vous pouvez utiliser unserialize(). Serialize() peut gérer n'importe quel type sauf la ressource. Vous pouvez même sérialiser() des tableaux contenant des références à eux-mêmes. Les références dans le tableau/objet que vous sérialisez() seront également stockées.
Lors de la sérialisation d'un objet, PHP tentera d'appeler la fonction membre de l'objet __sleep() avant l'action de séquence. Cela permet d'effectuer toutes les opérations de nettoyage avant que l'objet ne soit sérialisé. De même, lorsqu'un objet est restauré à l'aide d'unserialize(), la fonction membre __wakeup() sera appelée.
Remarque : En PHP 3, les propriétés des objets seront sérialisées, mais les méthodes seront perdues. PHP 4 brise cette limitation et peut stocker à la fois des propriétés et des méthodes. Consultez la section Objets sérialisés dans Classes et objets pour plus d’informations.
exemple de serialize()
<?php // $session_data 是包含了当前用户 session 信息的多维数组。 // 我们使用 serialize() 在请求结束之前将其存储到数据库中。 $conn = odbc_connect ("webdb", "php", "chicken"); $stmt = odbc_prepare ($conn, "UPDATE sessions SET data = ? WHERE id = ?"); $sqldata = array (serialize($session_data), $PHP_AUTH_USER); if (!odbc_execute ($stmt, &$sqldata)) { $stmt = odbc_prepare($conn, "INSERT INTO sessions (id, data) VALUES(?, ?)"); if (!odbc_execute($stmt, &$sqldata)) { /* 出错 */ } } ?>
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!