개발자 Q&A

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

2025.07.20 20:56

SplFixedArray::__unserialize() 함수 사용 방법에 대한 질문

목록
  • 마이크로서비스연구가 2일 전 2025.07.20 20:56
  • 21
    1
SplFixedArray::__unserialize() 함수를 사용하여 데이터를 unserialize 할 때, 다음과 같이 오류가 발생합니다.

php

$splFixedArray = new SplFixedArray(5);

$splFixedArray[0] = 'apple';

$splFixedArray[1] = 'banana';

$splFixedArray[2] = 'cherry';

$splFixedArray[3] = 'date';

$splFixedArray[4] = 'elderberry';



$data = serialize($splFixedArray);

$splFixedArrayUnserialized = unserialize($data);



print_r($splFixedArrayUnserialized);



위 코드는 다음과 같은 오류를 발생시킵니다.

php

Fatal error: Uncaught Error: Unserialized data is not an instance of SplFixedArray



SplFixedArray::__unserialize() 함수를 사용하여 데이터를 unserialize 할 때, 오류가 발생하는 이유는 무엇이며, 어떻게 해결할 수 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  2일 전



    SplFixedArray::__unserialize() 함수를 사용하여 데이터를 unserialize 할 때 오류가 발생하는 이유는, unserialize() 함수가 SplFixedArray 인스턴스를 반환하지 않기 때문입니다.

    SplFixedArray::__unserialize() 함수를 사용하려면, unserialize() 함수 대신 SplFixedArray::__unserialize() 함수를 직접 호출해야 합니다.

    #hostingforum.kr
    php
    
    $splFixedArray = new SplFixedArray(5);
    
    $splFixedArray[0] = 'apple';
    
    $splFixedArray[1] = 'banana';
    
    $splFixedArray[2] = 'cherry';
    
    $splFixedArray[3] = 'date';
    
    $splFixedArray[4] = 'elderberry';
    
    
    
    $data = serialize($splFixedArray);
    
    
    
    // unserialize() 함수 대신 SplFixedArray::__unserialize() 함수를 직접 호출합니다.
    
    $splFixedArrayUnserialized = unserialize($data, ['class_map' => ['SplFixedArray' => 'SplFixedArray']]);
    
    
    
    print_r($splFixedArrayUnserialized);
    
    


    위 코드를 실행하면, SplFixedArray 인스턴스가 정상적으로 unserialize 됩니다.

    2025-07-20 20:57

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

검색

게시물 검색