Yay Preprocessorライブラリを使用して、よりエレガントなコードを簡単に実装するために、Syntax SugarをPHPに追加してください!この記事では、Yayライブラリを使用してRuby-Like Array Slice Syntax SugarをPHPに追加する方法を示します。 $many[4..8]
コアポイント:
を使用して、配列の2番目、3番目、および4番目の要素を取得できますfew = many[1..3]
。また、PHPでは、同じ機能を達成するためにmany
を使用する必要があります。明らかに、Rubyの構文はより簡潔でエレガントです。 $few = array_slice($many, 1, 3);
マクロを使用してください:
まず、Yay Libraryをインストールする必要があります: 次に、次のコードを使用して$ composer require yay/yay:dev-master
array_slice.yphp
次に、Yayコンパイラを使用して
macro { T_VARIABLE·A[ ···range ] } >> { eval( '$list = ' . →(T_VARIABLE·A) . ';' . '$lower = ' . explode('..', →(···range))[0] . ';' . '$upper = ' . explode('..', →(···range))[1] . ';' . 'return array_slice($list, $lower, $upper - $lower);' ) } macro { →(···expression) } >> { ··stringify(···expression) } $many = [ "She walks in beauty", "like the night", "of cloudless climes", "and starry skies", "And all that's best", "of dark and bright", "meet in her aspect", "and her eyes", "...", ]; $lower = 4; $upper = 8; $few = $many[$lower..$upper];
生成された.yphp
ファイルには、次のものが含まれます(yayバージョンによってはわずかに異なる場合があります):
$ vendor/bin/yay array_slice.yphp >> array_slice.php
array_slice.php
作業原則:
$many = [ "She walks in beauty", "like the night", "of cloudless climes", "and starry skies", "And all that's best", "of dark and bright", "meet in her aspect", "and her eyes", "...", ]; $lower = 4; $upper = 8; $few = eval( '$list = ' . '$many' . ';'. '$lower = ' . explode('..', '$lower..$upper')[0] . ';' . '$upper = ' . explode('..', '$lower..$upper')[1] . ';' . 'return array_slice($list, $lower, $upper - $lower);' );
yayは、コード文字列をパーサーを介してタグに分割し、抽象的な構文ツリー(AST)を構築し、マクロを実際のPHPコードに置き換え、最終的に実行可能なPHPコードを生成します。 PHP変数の範囲が制限されているため、マクロは関数を使用します。これはわずかに無力ですが、予想される関数を効果的に実装します。
yayを使用すると、カスタム構文シュガーをPHPに追加して、コードの読みやすさと効率を向上させることができます。 Yay Libraryについてもっとアイデアや提案がある場合は、メッセージを残して議論してください。以上が楽しみと利益のためのPHPマクロ!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。