PHP での遅延評価は、次の方法で実現できます。 ジェネレーター関数: オンデマンドで値を生成し、実行を一時停止し、関数全体が一度に実行されることを避けるために値を提供します。遅延コレクション: コレクションと要素に対する遅延操作は、必要になるまで評価されません。遅延評価は次の目的で使用できます。 メモリの節約: 式は、結果が必要な場合にのみ評価されます。パフォーマンスの向上: 不必要な計算を回避します。パイプライン操作: 一連の遅延操作を連鎖させます。
#PHP 関数の遅延評価: パフォーマンスの向上、メモリの節約
遅延評価は、評価を遅らせることができる強力なプログラミング手法です。結果が実際に必要になるまで、関数または式を使用します。 PHP で遅延評価を実装するには、いくつかの方法があります。ジェネレーター関数
ジェネレーター関数は、オンデマンドで値を生成するため、遅延評価に最適です。ジェネレーター関数では、 yield キーワードを使用して、関数全体をすぐに実行せずに実行を一時停止し、値を提供します。次の値が必要になると、一時停止した場所から実行が再開されます。function fibonacci_generator($n) { $a = $b = 1; for ($i = 0; $i < $n; $i++) { yield $a; $temp = $a; $a = $a + $b; $b = $temp; } } foreach (fibonacci_generator(10) as $value) { echo $value . PHP_EOL; }
1 1 2 3 5 8 13 21 34 55
遅延コレクション
PHP 7.1 では、コレクションに対する操作を遅延できる LazyMap や LazyFilter などの遅延コレクション クラスが導入されました。コレクション内の要素は、必要になるまで評価されません。$collection = new LazyMap( function ($element) { return $element * 2; }, [1, 2, 3, 4, 5] ); foreach ($collection as $value) { echo $value . PHP_EOL; }
2 4 6 8 10
実用的なケース
実際のアプリケーションでは、遅延評価は次の目的で使用できます。以上がPHP 関数の遅延評価: パフォーマンスを最適化し、メモリを節約します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。