
PHP 8.1 버전 이상에서 RandomRandomizer::__serialize 오류를 해결하려면, __serialize() 메서드를 대신 사용하는 대신 deserialize() 메서드를 사용해야 합니다.
PHP 8.1 버전 이상에서 serialize() 함수를 사용할 때에는 serialize() 함수의 인자로 객체를 전달해야 합니다.
예를 들어, 다음 코드는 serialize() 함수를 사용해 객체를 serialize() 한 후, deserialize() 함수를 사용해 serialize() 한 객체를 deserialize() 하는 예시입니다.
#hostingforum.kr
php
class RandomRandomizer {
private $data;
public function __construct($data) {
$this->data = $data;
}
public function deserialize($serialized) {
return unserialize($serialized);
}
}
$randomRandomizer = new RandomRandomizer('테스트');
$serialized = serialize($randomRandomizer);
$deserialized = $randomRandomizer->deserialize($serialized);
만약 PHP 8.1 버전 이하에서 __serialize() 메서드를 사용하려면, serialize() 함수의 인자로 객체를 전달해야 합니다.
#hostingforum.kr
php
class RandomRandomizer {
private $data;
public function __construct($data) {
$this->data = $data;
}
public function __serialize() {
return $this->data;
}
public function __unserialize($data) {
$this->data = $data;
}
}
$randomRandomizer = new RandomRandomizer('테스트');
$serialized = serialize($randomRandomizer);
$deserialized = unserialize($serialized);
만약 serialize() 함수의 인자로 객체를 전달할 수 없다면, serialize() 함수의 인자로 객체의 속성을 전달해야 합니다.
#hostingforum.kr
php
class RandomRandomizer {
private $data;
public function __construct($data) {
$this->data = $data;
}
}
$randomRandomizer = new RandomRandomizer('테스트');
$serialized = serialize($randomRandomizer->data);
$deserialized = unserialize($serialized);
2025-04-17 19:37