라이브러리

[PHP] Generator::current - 산출된 값을 가져옵니다.




Generator::current() 메서드 소개


PHP 7.1 버전부터 Generator 클래스가 추가되었으며, 이 클래스는 이터레이터를 구현하는 Generator 함수를 위한 도구입니다. Generator::current() 메서드는 현재 이터레이터의 값을 반환합니다.

Generator::current() 메서드 사용 예제


#hostingforum.kr
php

function fibonacci() {

    $a = 0;

    $b = 1;

    yield $a;

    while (true) {

        yield $b;

        list($a, $b) = array($b, $a + $b);

    }

}



$fib = fibonacci();

echo $fib->current() . "
"; // 0

echo $fib->current() . "
"; // 1

echo $fib->current() . "
"; // 1

echo $fib->current() . "
"; // 2

echo $fib->current() . "
"; // 3

echo $fib->current() . "
"; // 5



위 예제에서는 Generator 함수 `fibonacci()`를 정의하고, 이 함수는 이터레이터를 반환합니다. 이터레이터의 현재 값을 반환하는 `current()` 메서드를 사용하여 이터레이터의 값을 출력합니다.

Generator::current() 메서드와 next() 메서드의 차이


`current()` 메서드는 이터레이터의 현재 값을 반환합니다. 반면 `next()` 메서드는 이터레이터의 값을 반환하고, 이터레이터의 포인터를 다음 값으로 이동시킵니다.

#hostingforum.kr
php

function fibonacci() {

    $a = 0;

    $b = 1;

    yield $a;

    while (true) {

        yield $b;

        list($a, $b) = array($b, $a + $b);

    }

}



$fib = fibonacci();

echo $fib->current() . "
"; // 0

echo $fib->next() . "
"; // 1

echo $fib->current() . "
"; // 1

echo $fib->next() . "
"; // 2

echo $fib->current() . "
"; // 2



위 예제에서는 `current()` 메서드와 `next()` 메서드를 함께 사용하여 이터레이터의 값을 출력합니다. `next()` 메서드를 호출하면 이터레이터의 포인터가 다음 값으로 이동되며, `current()` 메서드를 호출하면 현재 값이 반환됩니다.

Generator::current() 메서드의 사용 사례


Generator::current() 메서드는 이터레이터를 사용하여 데이터를 처리하는 경우 유용합니다. 예를 들어, 이터레이터를 사용하여 파일을 읽는 경우, `current()` 메서드를 사용하여 현재 라인 값을 반환할 수 있습니다.

#hostingforum.kr
php

function readLines($filename) {

    $file = fopen($filename, 'r');

    while (!feof($file)) {

        yield trim(fgets($file));

    }

    fclose($file);

}



$file = readLines('example.txt');

echo $file->current() . "
"; // 첫 번째 라인 값

echo $file->next() . "
"; // 두 번째 라인 값

echo $file->current() . "
"; // 두 번째 라인 값



위 예제에서는 Generator 함수 `readLines()`를 정의하고, 이 함수는 이터레이터를 반환합니다. 이터레이터의 현재 값을 반환하는 `current()` 메서드를 사용하여 파일의 라인 값을 출력합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 533 페이지

검색

게시물 검색