이전 버전의 PHP에서는 제너레이터 함수가 표현식을 반환할 수 없었지만, PHP 5.5부터는 기존에 제너레이터 리턴 표현식이 추가되었습니다. 제너레이터 리턴 표현식을 사용하면 제너레이터 내에서 리턴문을 사용하기 쉽고, 최종 표현식의 값도 리턴합니다.
- 제너레이터 반환 표현식을 사용하면 표현식의 값만 반환할 수 있지만 참조는 반환할 수 없습니다. 새로운 Generator::getReturn()을 사용하여 메서드를 사용하면 생성기 함수가 정의된 값 생성을 완료하면 사용할 수 있는 값을 가져올 수 있습니다.
- PHP 7 생성기를 사용하여 생성기 반환 표현식에서 최종 값을 반환할 수 있습니다. $generator>getReturn()을 사용하여 반환 표현식을 검색할 수 있습니다. PHP 7에서는 생성기를 실행하는 클라이언트 코드가 보유할 수 있는 프로그램의 공동 루틴 계산에서 생성기가 최종 값을 반환할 수 있기 때문입니다.
생성기 반환 표현식:예 1
<html> <head> <title> PHP 7 Feature : Generator Return Expressions </title> </head> <body> <?php $generator = (function(){ yield "five"; yield "six"; yield "seven"; return "eight"; }) (); foreach ($generator as $val){ echo $val, PHP_EOL; } echo $generator ->getReturn(), PHP_EOL; ?> </body> </html>
출력
위 PHP 프로그램의 출력은 다음과 같습니다.
five six seven eight
위 PHP 7 프로그램에 대한 설명 -
- 위의 코드를 편집기에서 작성할 수 있고 위의 예와 같이 필요한 HTML 코드를 작성할 수 있으며 HTML의 본문 부분은 생성기 반환 표현식을 위한 실제 PHP 7 코드를 삽입합니다.
- 둘째, $generator를 참조하는 함수를 선언합니다.
- $generator와 관련하여 "5","6","7"및 "8"수익률을 정의했습니다.
- 마지막으로 "$generator" 함수를 끝까지 반복하고(PHP_EOL) 생성기 반환 표현식과 함께 yield 값을 에코합니다.
생성기 반환 표현식:예 2
<html> <head> <title> PHP 7 Feature: Generator Return Expressions Example </title> </head> <body> <?php function gen(){ yield 'A'; yield 'B'; yield 'C'; return 'gen-return'; } $generator = gen(); var_dump($generator); foreach ($generator as $letter){ echo $letter; } var_dump($generator->getReturn()); ?> </body> </html>
출력
위의 PHP 프로그램의 출력은 -
object(Generator)#1 (0) { }ABCstring(10) "gen-return"