라이브러리
[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하지 않습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.