Bien que les macros ne se développent pas directement de manière récursive, il existe des techniques intelligentes pour obtenir des fonctionnalités similaires.
Nous pouvons utiliser des expressions différées et l'indirection pour empêcher le préprocesseur de désactiver la macro lors de l'expansion. Voici un exemple de création d'une macro pr récursive :
1 2 3 4 5 6 7 |
|
Cette macro se développe comme suit :
1 2 |
|
En utilisant ces techniques, nous pouvons créer une macro REPEAT récursive :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Bien que ces solutions de contournement autorisent les macros récursives, il est important de noter qu'elles peuvent être complexes et ne pas fonctionner dans tous les cas. Il est recommandé d'aborder l'utilisation récursive des macros avec prudence et d'envisager des alternatives telles que des fonctions ou une métaprogrammation de modèles, le cas échéant.
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!