Maison  >  Article  >  développement back-end  >  Qu'est-ce que la notation PHP ::class et comment simplifie-t-elle la gestion des classes ?

Qu'est-ce que la notation PHP ::class et comment simplifie-t-elle la gestion des classes ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-22 06:09:13283parcourir

What is the PHP ::class Notation and How Does it Simplify Class Handling?

La notation ::class en PHP : une explication complète

La notation ::class en PHP est un ajout relativement récent au langage , introduit dans la version 5.5. Cette notation vous permet de récupérer le nom complet d'une classe, y compris son espace de noms.

Comment utiliser ::class

Pour utiliser la notation ::class, écrivez simplement le nom de la classe suivi du suffixe ::class :

SomeClass::class

Cela renverra le nom complet de la classe, tel comme :

App\Console\Commands\Inspire

Avantages de l'utilisation de ::class

La notation ::class offre plusieurs avantages par rapport aux méthodes traditionnelles de stockage des noms de classe :

  • Élimine le besoin de chaînes littérales : Au lieu de stocker les noms de classe sous forme de chaînes, vous pouvez utiliser le ::notation de classe, qui générera automatiquement le nom complet correct. Cela rend votre code plus robuste et moins sujet aux erreurs.
  • Améliore la refactorisation de l'IDE : De nombreux IDE peuvent exploiter la notation ::class pour compléter automatiquement les noms de classe et les mettre à jour correctement pendant la refactorisation du code. .
  • Simplifie l'utilisation avec le mot-clé use : Vous pouvez utiliser le mot-clé use pour alias la classe noms, ce qui facilite leur utilisation dans votre code. Par exemple :
use App\Console\Commands\Inspire;

//...

protected $commands = [
    Inspire::class, // Equivalent to "App\Console\Commands\Inspire"
];

Applications supplémentaires de ::class

En plus de sa fonction principale, la notation ::class peut également être utilisée pour liaison statique tardive, une technique où le nom de la classe dérivée est résolu à l'intérieur de la classe parent. Cela peut être accompli en utilisant la syntaxe static::class :

class A {

    public function getClassName(){
        return __CLASS__;
    }

    public function getRealClassName() {
        return static::class;
    }
}

class B extends A {}

$a = new A;
$b = new B;

echo $a->getClassName();      // A
echo $a->getRealClassName();  // A
echo $b->getClassName();      // A
echo $b->getRealClassName();  // B

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn