라이브러리

[PHP] SplObjectStorage::unserialize - 문자열 표현에서 저장소의 직렬화를 해제합니다.




SplObjectStorage::unserialize

`SplObjectStorage`는 PHP의 내장 클래스 중 하나로, 객체를 저장하고 관리하는 데 사용됩니다. `unserialize` 메소드는 저장된 객체를 역직렬화하여 원래의 객체 형태로 반환합니다.

사용법


`unserialize` 메소드는 다음과 같은 형식으로 사용됩니다.

#hostingforum.kr
php

$storage = new SplObjectStorage();

// 객체를 저장합니다.

$storage->attach($obj1);

$storage->attach($obj2);



// 역직렬화합니다.

$unserialized = $storage->unserialize();



예제


#hostingforum.kr
php

class Person {

    public $name;

    public $age;



    function __construct($name, $age) {

        $this->name = $name;

        $this->age = $age;

    }

}



// 객체를 생성합니다.

$person1 = new Person('John', 30);

$person2 = new Person('Jane', 25);



// 객체를 저장합니다.

$storage = new SplObjectStorage();

$storage->attach($person1);

$storage->attach($person2);



// 역직렬화합니다.

$unserialized = $storage->unserialize();



// 역직렬화된 객체를 출력합니다.

foreach ($unserialized as $obj) {

    echo $obj->name . ' ' . $obj->age . "
";

}



결과


#hostingforum.kr


John 30

Jane 25



참고


`unserialize` 메소드는 객체를 역직렬화하는 데 사용됩니다. 그러나 객체의 속성이나 메소드는 직렬화된 상태에서 그대로 유지되지 않습니다. 객체의 속성이나 메소드가 변경되면 역직렬화된 객체의 속성이나 메소드도 변경됩니다.

또한 `unserialize` 메소드는 객체의 참조를 반환하므로, 원래의 객체가 삭제되면 역직렬화된 객체도 삭제됩니다.

예외


`unserialize` 메소드는 다음과 같은 예외를 발생시킬 수 있습니다.

- `Exception`: 객체가 직렬화되지 않은 경우.
- `TypeError`: 객체가 직렬화되지 않은 경우.

결론


`SplObjectStorage::unserialize` 메소드는 객체를 역직렬화하여 원래의 객체 형태로 반환합니다. 그러나 객체의 속성이나 메소드는 직렬화된 상태에서 그대로 유지되지 않습니다. 객체의 참조를 반환하므로, 원래의 객체가 삭제되면 역직렬화된 객체도 삭제됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 138 페이지

검색

게시물 검색