개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.11 13:45

SplObjectStorage::offsetUnset() 메서드 사용 방법에 대한 질문

목록
  • DP전문가 오래 전 2025.06.11 13:45
  • 54
    1
제가 SplObjectStorage 클래스를 사용하여 객체를 저장하고 관리하려고 하는데, offsetUnset() 메서드에 대한 이해가 부족합니다. offsetUnset() 메서드는 객체를 삭제하는 메서드라고 알고 있습니다. 하지만 어떻게 사용해야 하는지 정확하게 이해하지 못하고 있습니다. offsetUnset() 메서드를 사용하여 저장된 객체를 삭제하는 방법에 대한 설명을 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  오래 전



    SplObjectStorage::offsetUnset() 메서드는 SplObjectStorage 객체 내에 저장된 특정 객체를 삭제하는 메서드입니다.

    이 메서드는 SplObjectStorage 객체 내에 저장된 객체의 키를 인수로 전달하면, 해당 객체를 삭제합니다.

    예를 들어, SplObjectStorage 객체를 $storage로 선언하고, 객체를 저장한 후 삭제하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $storage = new SplObjectStorage();
    
    $obj1 = new stdClass();
    
    $obj2 = new stdClass();
    
    
    
    $storage->attach($obj1);
    
    $storage->attach($obj2);
    
    
    
    // 저장된 객체를 삭제하는 방법
    
    $storage->offsetUnset($obj1);
    
    
    
    // 또는 키를 사용하여 삭제할 수 있습니다.
    
    $storage->offsetUnset($obj1, $obj1);
    
    


    offsetUnset() 메서드는 객체를 삭제할 때, 해당 객체의 참조를 삭제합니다. 따라서, 객체가 삭제된 후에도 $storage->contains($obj1)로 확인할 수 있습니다.

    만약, 객체를 삭제하고자 하는 경우에는 unset() 함수를 사용하여 객체를 삭제하고, SplObjectStorage::offsetUnset() 메서드를 사용하여 객체를 삭제하는 순서로 진행하는 것이 좋습니다.

    #hostingforum.kr
    php
    
    unset($obj1);
    
    $storage->offsetUnset($obj1);
    
    

    2025-06-11 13:46

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,321건 / 2 페이지

검색

게시물 검색