PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHP7でのジェネレーターの委任


ジェネレーターの概念は、以前のバージョンでも使用可能だったため、PHP7では新しいものではありません。ジェネレーターを使用すると、イテレーター・インターフェースを実装するクラスを実装するオーバーヘッドなしに、実装が容易になります。ジェネレーターの助けを借りて、 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の本体部分は、ジェネレーターの戻り式に実際のPHP7コードを挿入します。
  • 次に、「generator」、「generator1」、「generator2」を使用して3つの関数が宣言されます。
  • ジェネレーター関数で歩留まりを「ゼロ」、「1」、「2」と定義しました。
  • 「generator1」関数では、yield「three」、「four」、および「five」が定義されています。
  • 「generator2」関数では、generator2のジェネレーターとジェネレーター1を読み取るyield「six」、「seven」、および「eight」を定義しました。
  • 最後に、yieldsの値をエコーする最後まで、「generator」関数と「generator2」関数を繰り返します。

  1. JavaScriptジェネレーター

    ジェネレーター関数は、yieldキーワードを使用して結果を生成し、戻った後もその状態を維持します。これにより、次に呼び出されたときに、最後のyield実行からすぐに再開できます。ジェネレーター関数を呼び出すたびに、呼び出し元に値が返されます。 以下はJavaScriptのジェネレーター関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport"

  2. Pythonのジェネレーター?

    ジェネレーターは、PEP 255で導入されて以来、Pythonの重要な部分となっています。 Pythonのジェネレーターは、ループの反復動作を制御するために使用できる特別なルーチンです。ジェネレータは、配列を返す関数に似ています。ジェネレーターにはパラメーターがあり、これを呼び出すことができ、一連の数値を生成します。ただし、配列全体を返す関数とは異なり、ジェネレーターは一度に1つの値を生成するため、必要なメモリは少なくなります。 キーワード「yield」を持つPython関数は、ジェネレーターと呼ばれることがあります。通常のPython関数は、最初の行から実行を開始し、returnステート