Confusions d’identifiants
<?php
const A = 'b::c';
class B {
static function C() { echo __METHOD__; }
}
//valid call to \B::C()
constant('A')();
// class A not found
//new A;
// Call to undefined function A()
A();
// parse error, this is not supported
//{A}();
Les identifiants sont utilisés à la fois pour les noms de constantes et pour les noms de classes (CITE). Selon la situation, ils peuvent être confondus l’un avec l’autre : ici, A est une constante, et sa valeur est accessible à des fins de code dynamique. Pourtant, A() ne peut pas être utilisé.
Il n’existe pas de syntaxe pour appeler dynamiquement une fonction dont le nom est stocké dans une constante, sans avoir recours à un appel à la fonction constant() ou à une variable temporaire.
See Also
- What is in an identifier [Try me]
PHP Features
Last updated: 22 October 2026