定義済みのクロージャーのセットを構築するクラスがあります。これまでのところは良いですが、作成関数に与える特定のパラメーターに従ってクロージャーを作成したいと思います。
たとえば、日付フォーマッタ。呼び出し元は、クロージャー内で使用する必要がある形式を (パラメーターとして) 指定できます。返されたクロージャー内で $format をグローバルにしようとしましたが、残念ながらそれは役に立ちませんでした..
コードは言葉よりも 100 倍わかりやすいので、以下に例を示します。
class ClosureCreate {
public static function getDateFormatter( $format ){
return function( $value ){
return date( $format, strtotime( $value ) );
};
}
}
getDateFormatter が、$format (getDateFormatter のパラメーター) で指定された $format に従って、(クロージャーに与えられた) 指定された $value をフォーマットするクロージャーを返すようにします。
これはPHPで可能ですか、それとも私はそれを求めているだけですか?