라이브러리

[PHP] Serializable::unserialize - 객체를 구성합니다.




Serializable::unserialize

PHP의 `Serializable` 인터페이스는 객체를 직렬화하고 역직렬화하는 기능을 제공합니다. 직렬화는 객체의 데이터를 문자열로 변환하는 것을 의미하며, 역직렬화는 문자열을 객체의 데이터로 변환하는 것을 의미합니다.

`unserialize` 메소드는 역직렬화 기능을 제공합니다. 이 메소드는 직렬화된 문자열을 객체의 데이터로 변환합니다.

Serializable 인터페이스

Serializable 인터페이스는 다음 메소드를 정의합니다.

* `unserialize` : 직렬화된 문자열을 객체의 데이터로 변환합니다.

예제

다음 예제에서는 `Serializable` 인터페이스를 구현한 `Person` 클래스를 정의하고, `unserialize` 메소드를 사용하여 직렬화된 문자열을 역직렬화합니다.

#hostingforum.kr
php

class Person implements Serializable {

    private $name;

    private $age;



    public function __construct($name, $age) {

        $this->name = $name;

        $this->age = $age;

    }



    public function serialize() {

        return serialize(array('name' => $this->name, 'age' => $this->age));

    }



    public function unserialize($data) {

        $data = unserialize($data);

        $this->name = $data['name'];

        $this->age = $data['age'];

    }



    public function getName() {

        return $this->name;

    }



    public function getAge() {

        return $this->age;

    }

}



// 예제 사용

$person = new Person('John Doe', 30);

$serializedData = $person->serialize();



echo "직렬화된 문자열: $serializedData
";



$unserializedPerson = unserialize($serializedData);

echo "역직렬화된 이름: {$unserializedPerson->getName()}
";

echo "역직렬화된 나이: {$unserializedPerson->getAge()}
";



이 예제에서는 `Person` 클래스를 정의하고, `serialize` 메소드를 사용하여 객체의 데이터를 직렬화합니다. 직렬화된 문자열을 `unserialize` 메소드를 사용하여 역직렬화합니다.

주의사항

`unserialize` 메소드는 위험할 수 있습니다. 직렬화된 문자열이 공격자가 조작할 수 있는 경우, 역직렬화된 객체가 공격자의 코드를 실행할 수 있습니다. 따라서 직렬화된 문자열을 신뢰할 수 없는 소스에서 받는 경우, `unserialize` 메소드를 사용하지 마세요.

결론

`Serializable` 인터페이스의 `unserialize` 메소드는 직렬화된 문자열을 객체의 데이터로 변환합니다. 그러나 직렬화된 문자열을 신뢰할 수 없는 소스에서 받는 경우, `unserialize` 메소드를 사용하지 마세요.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색