Je ne suis pas tout à fait clair quel usage vous auriez pour ::class
contre une chaîne. Le simple fait est que, si cela a fonctionné, il produirait juste la même chaîne que vous avez déjà. Par exemple, dans votre exemple, 'MyClass'::class
affichera la chaîne MyClass
.
Peut-être que vous essayez d'avoir une chaîne qui contient juste le nom de classe et vous essayez de résoudre l'espace de noms? Cela ne marchera pas. Mais vous pouvez obtenir l'espace de noms actuel en utilisant le mot réservé __NAMESPACE__
:
namespace foo\bar;
echo __NAMESPACE__; //will output 'foo\bar'
Vous pouvez utiliser en conjonction avec une chaîne de classname pour construire un classname entièrement qualifié pour l'espace de noms en cours.
Si vous souhaitez obtenir un nom de classe à partir d'un espace de nom différent, vous devez connaître l'espace de nom à l'avance; sans l'espace de noms, PHP ne sera pas capable de localiser la classe du tout.
Toutes les données de votre entrée ressembleront exactement à ceci? – vitozev
Je ne comprends pas, quelle entrée? – naneri
@naneri voulez-vous l'utiliser comme ceci '$ dynamic_name_of_the_class :: class'? –