Verwenden Sie die YAY -Präprozessor -Bibliothek, um Syntaxzucker zu PHP hinzuzufügen, um problemlos elegantere Code zu implementieren! In diesem Artikel wird gezeigt, wie die YAY-Bibliothek verwendet wird, um Ruby-ähnliche Array-Slice-Syntaxzucker für PHP hinzuzufügen. $many[4..8]
Kernpunkte:
die zweite, dritte und vierte Elemente eines Array few = many[1..3]
verwenden. Und in PHP müssen wir many
verwenden, um dieselbe Funktion zu erreichen. Offensichtlich ist Rubys Syntax prägnanter und eleganter. $few = array_slice($many, 1, 3);
Makros verwenden:
Zunächst müssen wir die YAY -Bibliothek installieren:
$ composer require yay/yay:dev-master
mit dem folgenden Code: array_slice.yphp
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];
Datei in Standard -PHP -Code zu konvertieren: .yphp
$ vendor/bin/yay array_slice.yphp >> array_slice.php
-Datei enthält Folgendes (kann je nach YAY -Version geringfügig abweichen): 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);' );
Arbeitsprinzip:
yay zerlegt die Codezeichenfolge in Tags über einen Parser, erstellt einen abstrakten Syntaxbaum (AST) und ersetzt das Makro durch realen PHP -Code und generiert schließlich ausführbaren PHP -Code. Aufgrund der Einschränkungen des Umfangs der PHP -Variablen verwendet das Makro die -Funktion, die leicht unelegant ist, die erwarteten Funktionen jedoch effektiv implementiert. eval()
Das obige ist der detaillierte Inhalt vonPHP -Makros zum Spaß und Gewinn!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!