>백엔드 개발 >PHP 튜토리얼 >php - 직렬화 가능한 인터페이스

php - 직렬화 가능한 인터페이스

伊谢尔伦
伊谢尔伦원래의
2017-03-18 11:35:412010검색

사용자 정의 직렬화 인터페이스.

이 인터페이스를 구현하는 클래스는 더 이상 __sleep() 및 __wakeup()을 지원하지 않습니다. 인스턴스를 직렬화해야 할 때마다 serialize 메서드가 호출됩니다. 이 메서드를 프로그래밍 방식으로 호출하지 않는 한 __destruct()를 호출하거나 다른 효과를 갖지 않습니다. 데이터가 역직렬화되면 클래스는 이를 인식하고 __construct()를 호출하는 대신 적절한 unserialize() 메서드가 호출됩니다. 표준 생성자를 실행해야 하는 경우 이 메서드에서 처리해야 합니다.

인터페이스 요약

Serializable {
    /* 方法 */
    abstract public string serialize ( void )
    abstract public mixed unserialize ( string $serialized )
}

예제 #1 사용 예

<?php
    class obj implements Serializable {
        private $data;
        public function __construct() {
            $this->data = "My private data";
        }
        public function serialize() {
            return serialize($this->data);
        }
        public function unserialize($data) {
            $this->data = unserialize($data);
        }
        public function getData() {
            return $this->data;
        }
    }
    $obj = new obj;
    $ser = serialize($obj);
    $newobj = unserialize($ser);
    var_dump($newobj->getData());
?>

위 루틴의 출력은 다음과 유사합니다.

string(15) "My private data"

메서드 목록

Serialized::serialize — 개체의 문자열 표현

Serialized::unserialize — 개체 구성

관련 기사:

Java 직렬화 직렬화 가능과 외부화 가능 간의 차이점에 대한 샘플 코드

Java 직렬화 직렬화 가능

java 직렬화 객체 직렬화 가능 읽기 및 읽기 데이터 쓰기

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