Junior
Quelle est la différence entre les mots-clés self et this en PHP?
sobes.tech IA
Réponse de l'IA
$this fait référence à l'instance courante de l'objet. self fait référence à la classe courante (dans un contexte statique ou à l'intérieur de méthodes pour accéder aux membres statiques).
$this:
- Utilisé pour accéder aux propriétés et méthodes d'une instance spécifique de la classe.
- S'applique dans les méthodes non statiques.
class MyClass {
public $instanceProperty = 'Bonjour';
public function getInstanceProperty() {
// Accès à la propriété de l'instance courante
return $this->instanceProperty;
}
}
self:
- Utilisé pour accéder aux propriétés et méthodes statiques de la classe.
- S'applique dans les méthodes statiques et non statiques.
class MyClass {
public static $staticProperty = 'Monde';
public static function getStaticProperty() {
// Accès à la propriété statique
return self::$staticProperty;
}
public function accessStaticFromInstance() {
// Accès à la propriété statique depuis une méthode non statique
return self::$staticProperty;
}
}
Exemple d'utilisation conjointe de $this et self:
class Example {
public $instanceId;
private static $count = 0;
public function __construct() {
// Utilisation de self pour augmenter le compteur statique
self::$count++;
// Utilisation de $this pour définir la propriété de l'instance
$this->instanceId = self::$count;
}
public static function getCount() {
// Utilisation de self pour obtenir la propriété statique
return self::$count;
}
public function getInstanceId() {
// Utilisation de $this pour obtenir la propriété de l'instance
return $this->instanceId;
}
}