Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 7의 생성기 반환 표현식


이전 버전의 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"