라이브러리

[PHP] RandomRandomizer::__serialize - Randomizer 객체를 직렬화합니다.




PHP 7.4 버전부터 PHP는 serialize() 함수를 사용하여 객체를 문자열로 변환할 수 있습니다. 그러나 PHP 7.4 버전부터는 serialize() 함수가 객체의 private 변수를 serialize하지 않습니다. 이를 해결하기 위해 PHP 7.4 버전부터는 __serialize() 함수를 사용하여 객체를 serialize할 수 있습니다.

__serialize() 함수


__serialize() 함수는 serialize() 함수와 유사하게 객체를 문자열로 변환하지만, private 변수를 serialize할 수 있습니다.

# 예제


#hostingforum.kr
php

class RandomRandomizer {

    private $privateVar;

    public $publicVar;



    public function __construct() {

        $this->privateVar = 'private';

        $this->publicVar = 'public';

    }



    public function __serialize() {

        return [

            'privateVar' => $this->privateVar,

            'publicVar' => $this->publicVar,

        ];

    }



    public function __unserialize($data) {

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

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

    }

}



$r = new RandomRandomizer();

$serialized = serialize($r);

echo $serialized . "
";



$unserialized = unserialize($serialized);

echo $unserialized->publicVar . "
";

echo $unserialized->privateVar . "
";



위 예제에서 `__serialize()` 함수를 사용하여 `RandomRandomizer` 객체를 serialize합니다. serialize된 문자열을 `unserialize()` 함수를 사용하여 객체로 변환한 후, private 변수와 public 변수를 출력합니다.

__unserialize() 함수


`__unserialize()` 함수는 serialize된 문자열을 객체로 변환합니다. 위 예제에서 `__unserialize()` 함수를 사용하여 serialize된 문자열을 객체로 변환합니다.

참고


- PHP 7.4 버전부터는 `__serialize()` 함수를 사용하여 객체를 serialize할 수 있습니다.
- `__serialize()` 함수는 private 변수를 serialize할 수 있습니다.
- `__unserialize()` 함수는 serialize된 문자열을 객체로 변환할 수 있습니다.
- `serialize()` 함수는 객체의 private 변수를 serialize하지 않습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 300 페이지

검색

게시물 검색