
SplObjectStorage::offsetExists 메서드는 객체가 저장되어 있는지 여부를 확인하는 데 사용됩니다. 그러나 저장된 객체가 실제로 존재하는지 여부를 확인하는 방법은 없습니다.
이 메서드는 객체의 해시 값을 비교하여 객체가 저장되어 있는지 여부를 확인합니다. 따라서 객체가 여러 번 저장되어도 bool(true) 값을 반환합니다.
만약 객체가 실제로 존재하는지 여부를 확인하고 싶다면, SplObjectStorage::current 메서드를 사용할 수 있습니다.
예를 들어, 다음 코드를 보겠습니다.
php
$storage = new SplObjectStorage();
$storage->attach(new stdClass());
$storage->attach(new stdClass());
var_dump($storage->offsetExists(new stdClass())); // bool(true)
var_dump($storage->current()); // 객체의 참조
위 코드에서 SplObjectStorage::current 메서드는 저장된 객체의 참조 값을 반환합니다. 따라서 객체가 실제로 존재하는지 여부를 확인할 수 있습니다.
2025-06-19 08:10