Soi contre $this : quand et comment utiliser chacun
Question :
En PHP 5, en quoi les mots-clés « self » et « $this » diffèrent-ils dans leur utilisation ? Quand chacun doit-il être utilisé de manière appropriée ?
Réponse :
Réponse courte :
Utilisez « $this » pour faire référence à les variables et méthodes d'instance de l'objet actuel. Utilisez « self » pour faire référence aux variables et méthodes statiques de la classe actuelle.
Réponse complète :
Membres non statiques ou statiques :
Polymorphisme :
Exemple (utilisation correcte) :
class X { private $non_static_member = 1; private static $static_member = 2; function __construct() { echo $this->non_static_member . ' ' . self::$static_member; } } new X(); // Output: 1 2
Exemple (utilisation incorrecte) :
class X { private $non_static_member = 1; private static $static_member = 2; function __construct() { echo self::$non_static_member . ' ' . $this->static_member; // Incorrect usage } } new X(); // Error: Undefined properties
Suppression Polymorphisme :
class X { function foo() { echo 'X::foo()'; } function bar() { self::foo(); // Suppresses polymorphism } } class Y extends X { function foo() { echo 'Y::foo()'; } } $x = new Y(); $x->bar(); // Output: X::foo()
Résumé :
Utilisez "$this" pour l'accès aux membres non statiques et le polymorphisme. Utilisez "self" pour l'accès aux membres statiques et lorsque vous devez supprimer le polymorphisme.
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!