
SplObjectStorage::offsetUnset() 함수는 SplObjectStorage 객체에 저장된 특정 오브젝트를 삭제합니다.
$storage->offsetUnset($obj1);
- 이때의 결과는 $obj1이 삭제된 상태가 됩니다. 하지만 $storage 객체 내에서 $obj1이 삭제된 것을 알 수 없습니다.
$storage->offsetUnset($obj2);
- 이때의 결과는 $obj2가 삭제된 상태가 됩니다. 하지만 $storage 객체 내에서 $obj2이 삭제된 것을 알 수 없습니다.
print_r($storage);
- 이때의 결과는 SplObjectStorage 객체 내에 저장된 오브젝트가 모두 삭제된 것으로 보이지만, 실제로는 삭제된 오브젝트는 삭제된 상태이지만 SplObjectStorage 객체 내에서 삭제된 것을 알 수 없습니다.
SplObjectStorage::offsetUnset() 함수를 사용하여 오브젝트를 삭제하려면, 삭제된 오브젝트가 삭제된 것을 확인하기 위해 SplObjectStorage::detach() 함수를 사용하여 삭제된 오브젝트를 확인해야 합니다.
예를 들어, 아래와 같이 사용할 수 있습니다.
2025-04-15 11:24