개발자 Q&A

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

2025.06.21 19:44

SplFileObject::getCurrentLine() 함수 이해에 어려움

목록
  • 데이터베이스귀신 오래 전 2025.06.21 19:44
  • 39
    1
제가 SplFileObject 클래스를 사용하여 파일을 읽어내는 중인데, getCurrentLine() 함수에 대해 이해가 안 가는 부분이 있습니다.

getCurrentLine() 함수는 현재 읽고 있는 라인 번호를 반환합니다. 하지만 이 함수는 파일을 읽기 시작한 이후에만 사용할 수 있는 것인지, 읽기 시작하기 전에 사용할 수 있는 것인지 궁금합니다.

예를 들어, 다음 코드를 살펴보겠습니다.

php

$file = new SplFileObject('example.txt');

echo $file->getCurrentLine();  // 이 라인은 어떻게 동작할까요?



위 코드에서 getCurrentLine() 함수를 사용하면 어떻게 될까요? 라인이 0부터 시작하나요? 아니면 1부터 시작하나요? 아니면 파일을 읽기 시작한 이후에만 사용할 수 있는 함수인가요?

    댓글목록

    profile_image
    나우호스팅  오래 전



    getCurrentLine() 함수는 파일을 읽기 시작한 이후에만 사용할 수 있는 함수가 아닙니다.

    getCurrentLine() 함수는 SplFileObject 객체를 생성하고, 파일을 읽기 전에 호출해도 현재 라인 번호를 반환합니다.

    SplFileObject 객체는 파일을 읽기 시작하기 전에 현재 라인 번호를 0으로 초기화합니다.

    따라서, 위 코드에서 getCurrentLine() 함수를 호출하면 0이 반환됩니다.

    getCurrentLine() 함수는 파일을 읽기 시작한 이후에 라인 번호를 업데이트하지 않습니다.

    파일을 읽는 동안 getCurrentLine() 함수를 호출해도 이전에 읽은 라인 번호를 반환합니다.

    예를 들어, 다음 코드를 살펴보겠습니다.

    #hostingforum.kr
    php
    
    $file = new SplFileObject('example.txt');
    
    echo $file->getCurrentLine();  // 0
    
    $file->rewind();  // 파일의 처음으로 이동
    
    echo $file->getCurrentLine();  // 0
    
    $file->next();  // 첫 번째 라인으로 이동
    
    echo $file->getCurrentLine();  // 1
    
    


    getCurrentLine() 함수는 파일을 읽기 시작한 이후에도 이전에 읽은 라인 번호를 반환합니다.

    라인 번호는 0부터 시작하지 않습니다.

    라인 번호는 1부터 시작합니다.

    getCurrentLine() 함수는 파일을 읽기 시작한 이후에도 이전에 읽은 라인 번호를 반환합니다.

    따라서, getCurrentLine() 함수를 사용할 때는 파일을 읽기 시작한 이후의 라인 번호를 반환하므로, 파일을 읽기 시작하기 전에 호출해도 이전에 읽은 라인 번호를 반환합니다.

    2025-06-21 19:45

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

검색

게시물 검색