Toutes les syntaxes statiques avec accolades et une erreur
<?php
echo A::A;
echo A::{A};
echo A::{$A};
echo A::${A};
echo A::${$A};
echo A::${${A}};
echo A::${${$A}};
echo A::${${$A}};
echo A::${${A}};
echo A::${${$A{A}}};
?>
Quelle est la seule syntaxe invalide dans la liste suivante ?
Supposez que toutes les définitions nécessaires sont disponibles.
Passons-les toutes en revue.
-
C’est la syntaxe classique des constantes de classe, ou d’un cas d’énumération.
-
C’est la nouvelle syntaxe PHP 8.3 pour les constantes de classe dynamiques. La particularité est que la partie dynamique est la constante globale A.
-
C’est la nouvelle syntaxe PHP 8.3 pour les constantes de classe dynamiques. Le nom de la constante est dans la variable $A.
-
C’est la syntaxe pour les propriétés statiques dynamiques. Le nom de la propriété est dans la constante globale A.
-
C’est la syntaxe pour les propriétés statiques dynamiques. Le nom de la propriété est dans la variable $A.
-
C’est la syntaxe pour les propriétés statiques dynamiques. Le nom de la propriété est dans la constante globale A, qui construit la variable variable ${A}.
-
C’est la syntaxe pour les propriétés statiques dynamiques. Le nom de la propriété est dans la variable $A, qui construit la variable variable ${$A}.
-
C’est la syntaxe pour les propriétés statiques dynamiques. Le nom de la propriété est dans la variable variable $$A, qui construit la variable variable ${$$A}.
-
C’est la syntaxe pour les propriétés statiques dynamiques. Le nom de la propriété est dans la variable variable ${$A}. C’est une composition des cas précédents.
-
C’est la syntaxe problématique. $A{A} est une tentative de lecture d’un élément à la position A dans la variable $A. Il s’agit d’une fonctionnalité PHP supprimée depuis PHP 8. Elle devrait s’écrire $A[A], bien que ce serait trop évident pour le puzzle.
See Also
- Lots of {} [Try me]
PHP Error Messages
PHP Features
Last updated: 11 October 2026