Maison >développement back-end >tutoriel php >PHP `self` vs `$this` : quand utiliser chacun ?
Quand utiliser 'Self' et '$This' en PHP
En PHP, comprendre la distinction entre 'self' et '$ ceci est crucial. « Self » fait référence à la classe actuelle, tandis que « $this » fait référence à l'objet actuel.
Quand utiliser « Self » :
Accès aux membres statiques (variables ou méthodes) :
class MyClass { static $static_member = 10; } echo MyClass::$static_member; // Output: 10
Appel de la classe parent méthodes :
class ChildClass extends ParentClass { public function myMethod() { self::parentMethod(); // Calls the parent class method } }
Quand utiliser '$This' :
Accès aux membres non statiques :
class MyClass { private $instance_member = 20; } $obj = new MyClass(); echo $obj->instance_member; // Output: 20
Instance appelante méthodes :
class MyClass { public function myMethod() { echo $this->instance_member; // Accesses the instance member } }
Polymorphisme : appel de méthodes d'instance à partir de classes dérivées :
class BaseClass { public function myMethod() { echo 'BaseClass::myMethod()'; } } class DerivedClass extends BaseClass { override public function myMethod() { echo 'DerivedClass::myMethod()'; } } $baseObj = new BaseClass(); $derivedObj = new DerivedClass(); $baseObj->myMethod(); // Output: 'BaseClass::myMethod()' $derivedObj->myMethod(); // Output: 'DerivedClass::myMethod()'
Suppression du polymorphisme : appel de méthodes de classe parent à l'aide de ' soi' dans les classes dérivées :
class BaseClass { public function myMethod() { echo 'BaseClass::myMethod()'; } } class DerivedClass extends BaseClass { override public function myMethod() { parent::myMethod(); // Calls the BaseClass's myMethod() using self:: } } $derivedObj = new DerivedClass(); $derivedObj->myMethod(); // Output: 'BaseClass::myMethod()'
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!