Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 객체 직렬화

<시간/>

소개

바이트 스트림 형태의 모든 객체의 문자열 표현은 serialze()에 의해 얻습니다. PHP에서 함수. 객체의 모든 속성 변수는 문자열에 포함되며 메서드는 저장되지 않습니다. 이 문자열은 모든 파일에 저장할 수 있습니다.

바이트 스트림에서 객체를 검색하기 위해 unserialize() 함수가 있습니다. unserialize()를 호출하기 전에 해당 클래스의 정의를 사용할 수 있어야 합니다. 기능.

예시

먼저 다음 클래스의 객체를 직렬화하고 문자열을 파일에 저장합니다.

<?php
class test1{
   private $name;
   function __construct($arg){
      $this->name=$arg;
   }
}
$obj1=new test1("Kiran");
$str=serialize($obj1);
$fd=fopen("obj.txt","w");
fwrite($fd, $str);
fclose($fd);
?>

현재 폴더에 obj.txt가 생성됩니다. 직렬화를 해제하기 위해 다음 코드는 주어진 파일에서 읽은 바이트 스트림에서 객체를 재구성합니다.

예시

<?php
class test1{
   private $name;
   function __construct($arg){
      $this->name=$arg;
   }
   function getname(){
      return $this->name;
   }
}
$filename="obj.txt";
$fd=fopen("obj.txt","r");
$str=fread($fd, filesize($filename));
$obj=unserialize($str);
echo "name: ' . $obj->getname();
?>

출력

위의 코드는 이제 출력 다음에 이름을 반환합니다.

name: Kiran