Utilisez la bibliothèque du préprocesseur Yay pour ajouter du sucre de syntaxe à PHP pour implémenter facilement un code plus élégant! Cet article montrera comment utiliser la bibliothèque Yay pour ajouter du sucre de syntaxe de tranche de type rubis pour PHP. $many[4..8]
Points de base:
pour obtenir les deuxième, troisième et quatrième éléments d'un tableau few = many[1..3]
. Et dans PHP, nous devons utiliser many
pour atteindre la même fonction. De toute évidence, la syntaxe de Ruby est plus concise et élégante. $few = array_slice($many, 1, 3);
pour utiliser les macros:
Tout d'abord, nous devons installer la bibliothèque Yay:
$ composer require yay/yay:dev-master
avec le code suivant: 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];
en code PHP standard: .yphp
$ vendor/bin/yay array_slice.yphp >> array_slice.php
contiendra ce qui suit (peut différer légèrement, selon la version yay): 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);' );
Principe de travail:
Yay casse la chaîne de code en balises via un analyseur, construit une arborescence de syntaxe abstraite (AST) et remplace la macro par du code PHP réel et génère finalement un code PHP exécutable. En raison des limites de la portée des variables PHP, la macro utilise la fonction, qui est légèrement inélégante, mais implémente efficacement les fonctions attendues. eval()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!