>  기사  >  백엔드 개발  >  PHP 직렬화 및 역직렬화 예제 분석

PHP 직렬화 및 역직렬화 예제 분석

墨辰丷
墨辰丷원래의
2018-05-29 10:24:571420검색

이 글은 주로 PHP 직렬화 및 역직렬화를 소개하며, PHP 객체 지향 프로그래밍과 직렬화 및 역직렬화 관련 사용법을 예제 형식으로 분석합니다. 이 문서에서는 PHP 직렬화 및 역직렬화에 대해 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

객체도 메모리에 저장되는 데이터 유형이며 수명은 일반적으로 객체를 생성한 프로그램이 종료될 때 끝납니다. 때로는 개체의 상태를 저장하고 필요할 때 복원해야 할 수도 있습니다. 직렬화는 각 개체를 이진 문자열로 변환합니다.

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

Serialized file.txt:

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

위 내용은 이 글의 전체 내용입니다. 공부하다.


관련 권장 사항:

PHP 객체 지향 - 객체

직렬화 serialize(), __sleep(), __wakeup() 코드 세부 정보

PHP의

직렬화 사용 예에 ​​대한 자세한 설명
PHP에서

직렬화 사용


위 내용은 PHP 직렬화 및 역직렬화 예제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.