Maison >développement back-end >tutoriel php >Analyse d'exemples de sérialisation et de désérialisation PHP

Analyse d'exemples de sérialisation et de désérialisation PHP

墨辰丷
墨辰丷original
2018-05-29 10:24:571514parcourir

Cet article présente principalement la sérialisation et la désérialisation PHP, combinés avec des exemples pour analyser la programmation orientée objet PHP et les fonctions de sérialisation et de désérialisation pour les compétences d'utilisation liées à la sérialisation et à la désérialisation, amis dans le besoin Vous pouvez vous référer aux exemples ci-dessous

Cet article décrit la sérialisation et la désérialisation PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

L'objet est également un type de données stocké en mémoire, et sa durée de vie se termine généralement avec la fin du programme qui a généré l'objet. Parfois, vous devrez peut-être enregistrer l'état d'un objet et le restaurer si nécessaire. La sérialisation convertit chaque objet en une chaîne binaire.

<?php
class Person {
  var $name;
  var $sex;
  var $age;
  function __construct($name = "", $sex = "男", $age = 22) {
    $this->name = $name;
    $this->sex = $sex;
    $this->age = $age;
  }
  function say() {
    echo $this->name . "在说话<br/>";
  }
  function run() {
    echo "在走路·<br/>";
  }
  //串行化的时候自动调用,成员$sex被忽略,只串行$name,$age
  function __sleep() {
    $arr = array("name","age");
    return $arr;
  }
  //反串行化时自动调用
  function __wakeup() {
    $this->age = 33;
  }
}
class Student extends Person {
  var $school;
  function __construct($name = "", $sex = "男", $age = 22,$school="") {
    parent::__construct($name,$sex,$age);
    $this->school = $school;
  }
  function study() {
    echo $this->name."正在".$this->school."学习<br/>";
  }
}
class Teacher extends Student {
  var $wage;
  function teaching() {
    echo $this->name."正在".$this->school."教学,每月工资为".$this->wage."<br/>";
  }
  //如果调用了不存在的方法,将会自动调用__call(),不会报错
  function __call($functionName,$args) {
    echo "函数名:".$functionName;
    print_r($args);
    echo "<br/>";
  }
}
$teacher1 = new Teacher("kaifu","男",22);
$teacher1->school = "edu";
$teacher1->wage = 4000;
$teacher1->say();
$teacher1->study();
$teacher1->teaching();
$teacher1->hello(1,2,3);
?>

<?php
  require_once &#39;Person.php&#39;;
  $teacher = new Teacher("tom","男",22);
  $teacher_str = serialize($teacher);
  file_put_contents("file.txt", $teacher_str);
  //反串行化
  $objStr = file_get_contents("file.txt");
  $t = unserialize($objStr);
  echo $t->age;
?>

Fichier.txt sérialisé :

O:7:"Teacher":2:{s:4:"name";s:3:"tom";s:3:"age";i:22;}

Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.


Recommandations associées :

PHP orienté objet - objetSérialisationserialize(),__sleep(),__wakeup Détaillé explication du code de ()

Explication détaillée des exemples d'utilisation de la sérialisation en PHP

PHP Utilisation de la sérialisation

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