Heim >Backend-Entwicklung >PHP-Tutorial >Beispielanalyse für PHP-Serialisierung und Deserialisierung

Beispielanalyse für PHP-Serialisierung und Deserialisierung

墨辰丷
墨辰丷Original
2018-05-29 10:24:571514Durchsuche

Dieser Artikel stellt hauptsächlich die PHP-Serialisierung und -Deserialisierung vor, kombiniert mit Beispielen zur Analyse der objektorientierten PHP-Programmierung und Serialisierungs- und Deserialisierungsfunktionen für Serialisierungs- und Deserialisierungsbezogene Verwendungsfähigkeiten, Freunde in Not Sie können sich auf die folgenden Beispiele beziehen

Dieser Artikel beschreibt die Serialisierung und Deserialisierung von PHP. Geben Sie es als Referenz an alle weiter. Die Einzelheiten lauten wie folgt:

Objekt ist ebenfalls ein im Speicher gespeicherter Datentyp, und seine Lebensdauer endet normalerweise mit der Beendigung des Programms, das das Objekt generiert hat. Manchmal müssen Sie möglicherweise den Status eines Objekts speichern und bei Bedarf wiederherstellen. Durch die Serialisierung wird jedes Objekt in eine Binärzeichenfolge umgewandelt.

<?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;
?>

Serialisierte Datei.txt:

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

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.


Verwandte Empfehlungen:

PHP objektorientiert - ObjektSerialisierungserialize(),__sleep(),__wakeup Detailliert Code-Erklärung von ()

Detaillierte Erläuterung von Anwendungsbeispielen der Serialisierung in PHP

PHP Die Verwendung von Serialisierung

Das obige ist der detaillierte Inhalt vonBeispielanalyse für PHP-Serialisierung und Deserialisierung. 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