소개
직렬화 가능 인터페이스는 맞춤형 직렬화를 제공하는 클래스를 빌드하기 위해 PHP 라이브러리에 있습니다. PHP의 serialize() 함수는 대부분의 값을 저장 가능한 표현으로 직렬화할 수 있습니다. 그러나 사용자 정의 클래스의 개체는 직렬화할 수 없습니다. 이 인터페이스를 통해 가능합니다.
구문
Serializable { /* Methods */ abstract public serialize ( void ) : string abstract public unserialize ( string $serialized ) : void }
방법
직렬화 가능::직렬화 — 객체의 문자열 표현
직렬화 가능::직렬화 해제 — 직렬화된 문자열 표현에서 개체를 구성합니다.
내장된 serialze() 함수 값의 저장 가능한 표현을 생성합니다.
serialize ( mixed $value ) : string
직렬화 해제() 함수 저장된 표현에서 PHP 값 생성
unserialize ( string $str [, array $options ] ) : mixed
직렬화 가능한 예
다음 예에서 문자열 변수는 myclass의 private 속성으로 사용됩니다. 내장된 serialize() 함수가 이 클래스의 객체를 인수로 사용하면 serialize() 메서드가 자동으로 호출됩니다. 마찬가지로 unserialize() 함수는 문자열 prvate 속성으로 객체를 재구성합니다.
예시
<?php class myclass implements Serializable { private $arr; public function __construct() { $this->arr = "TutorialsPoint India (p) Ltd"; } public function serialize() { echo "Serializing object..\n"; return serialize($this->arr); } public function unserialize($data) { echo "Unserializing object..\n"; $this->arr = unserialize($data); } public function getdata() { return $this->arr; } } $obj = new myclass; $serobj = serialize($obj); var_dump ($serobj); $obj1 = unserialize($serobj); var_dump($obj1->getdata()); ?>
출력
위의 프로그램은 다음과 같은 출력을 보여줍니다.
Serializing object.. string(55) "C:7:"myclass":36:{s:28:"TutorialsPoint India (p) Ltd";}" Unserializing object.. string(28) "TutorialsPoint India (p) Ltd"