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

PHP 7의 생성기 위임


생성기의 개념은 PHP 7에서 새로운 것이 아닙니다. 이전 버전에서도 사용할 수 있었기 때문입니다. 제너레이터를 사용하면 반복자 인터페이스를 구현하는 클래스를 구현하는 오버헤드 없이 구현이 쉬워집니다. 생성기의 도움으로 foreach를 작성할 수 있습니다. 메모리에 배열을 사용하지 않고 코드를 작성합니다. 또한 "메모리 제한 초과 오류"를 제거하는 데 도움이 됩니다.

PHP 7의 생성기 위임의 도움으로 다른 생성기에 자동으로 위임할 수 있습니다. 또한 순회 가능한 인터페이스를 구현하는 배열 및 개체를 허용합니다.

제너레이터 위임 예 1

<html>
<head>
<title> PHP 7 : Tutorialpoint </title>
</head>
<body>
<?php
   function generator(){
      yield "zero";
      yield "one";
      yield "two";
   }
   function generator1(){
      yield "three";
      yield "four";
      yield "five";
   }
   function generator2(){
      yield "six";
      yield "seven";
      yield "eight";
      yield from generator();
      yield "nine";
      yield from generator1();
      yield "ten";
   }
   foreach (generator() as $value){
      echo $value, PHP_EOL;
   }
   foreach(generator2() as $value){
      echo $value, PHP_EOL;
   }
?>
</body>
</html>

출력

위 PHP 프로그램 생성기 위임 프로그램의 출력은 -

zero one two six seven eight zero one two nine three four five ten

설명

  • 위의 코드를 편집기에서 작성할 수 있고 위의 예와 같이 필요한 HTML 코드를 작성할 수 있으며 HTML의 본문 부분은 생성기 반환 표현식을 위한 실제 PHP 7 코드를 삽입합니다.
  • 둘째, 'generator', 'generator1', 'generator2'를 사용하여 3개의 함수를 선언합니다.
  • 제너레이터 함수에서 수율 "0", "1" 및 "2"를 정의했습니다.
  • "generator1" 함수에서 yield "three", "four" 및 "five"가 정의되었습니다.
  • 'generator2' 함수에서 yield"six", "seven" 및 "eight"를 정의하여 generator2에서 생성기와 생성기 1을 읽습니다.
  • 마지막으로 "generator" 및 "generator2" 함수를 수율 값을 반영할 때까지 반복합니다.