
SplObjectStorage::unserialize을 사용하여 객체를 unserialize한 후, 객체의 속성을 접근하려고 할 때 오류가 발생하는 이유는 SplObjectStorage::unserialize이 객체의 속성을 복원하지 않기 때문입니다.
이 문제를 해결하기 위해서는 unserialize한 객체를 다시 serialize하여 속성을 복원해야 합니다.
예를 들어, 다음과 같은 코드를 사용하여 해결할 수 있습니다.
#hostingforum.kr
php
$storage = new SplObjectStorage();
$storage->attach(new stdClass());
$storage->rewind();
$obj = $storage->current();
// 객체를 serialize하여 속성을 복원합니다.
$serializedObj = serialize($obj);
$obj = unserialize($serializedObj);
var_dump($obj->test); // 오류가 발생하지 않습니다.
또는, 객체를 unserialize한 후, 속성을 추가할 수 있습니다.
#hostingforum.kr
php
$storage = new SplObjectStorage();
$storage->attach(new stdClass());
$storage->rewind();
$obj = $storage->current();
$obj->test = '테스트';
var_dump($obj->test); // 오류가 발생하지 않습니다.
2025-06-01 16:24