Text_VariationProducerの紹介
Text_VariationProducerというPHPのクラスを作りましたので、紹介します。
Text_VariationProducerは、指定した全組み合わせの文字列を作り出すようなイテレータです。n重ループや分岐を書く代わりに、文字列の組み合わせパターンを簡単な文法で記述するだけで、全部の組み合わせを順に得ることができます。
次のような特徴もあります。
- SPLのIteratorインターフェースを実装しているため、foreach文で簡潔にループを記述できます。
- 必要になってから文字列を生成し、生成した文字列を即座に破棄します。そのため、全ての組み合わせを一度に生成するよりもメモリ消費が抑えられ、組み合わせ数が多い場合(数十万から百万程度)でも現実的に動作します。
- クラス定数で便利な文字列定義を提供しており、「1バイトから3バイトで表現される全てのUTF8の1文字」などが簡単に利用できます。
詳しくはopenpearのText_VariationProducerのページをご覧ください。僕が便利だと思うのは、下記のような実験コードが気軽に書けるようになったことです。
<?php require_once 'Text/VariationProducer.php'; $strings = new Text_VariationProducer(Text_VariationProducer::UTF8); foreach ($strings as $string) { ... }
自分以外の人が便利に使うシチュエーションが思いつかないのですが、便利な用途を思いついた人は教えてください。