라이브러리
[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()` 메서드를 사용하여 파일의 라인 값을 출력합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.