Formation PUB010 : PHP, 2025 Notions de programmation appliquées au PHP (référence)

56.15 $this vs self::


Chaque méthode, incluant le constructeur, reçoit un paramètre caché. Ce paramètre n'est précisé à nulle part mais il est bel et bien reçu par la méthode. Il s'agit d'une référence à l'objet sur lequel la méthode doit travailler.

Cette référence d'objet s'appelle $this.

Par exemple, lorsqu'une méthode initialise une propriété, PHP doit savoir dans quelle case mémoire la valeur doit être stockée. Est-ce que c’est dans la case mémoire de la propriété de l'objet X ou dans celle de l'objet Y ? Le paramètre caché $this indique qu'il faut utiliser la propriété de l'objet qui figure devant l'appel de la méthode.

Ex :

Utilisation de la classe (PHP)

$monObjet->MaMethode($valeur);

Définition de la classe (PHP)

class MaClasse

{

    private $maPropriete;

 

    // ...

 

    public function MaMethode($maPropriete) {

        $this->maPropriete = $maPropriete;

    }

}

Le mot-clé $this devra également être utilisé devant l'appel d'une méthode de la même classe.

Définition de la classe (PHP)

class MaClasse

{

    // ...

 

    public function MaMethode($maPropriete) {

        $this->maPropriete = $maPropriete;

        $this->AutreMethode();

    }

 

    public function AutreMethode() {

        // ...

    }

}

Il existe un autre paramètre caché qui s'appelle self

Alors que $this fait référence à l'objet courant, self fait référence à la classe.

On utilisera self pour accéder à des membres statiques de la classe. Notez qu'avec self, on troquera la flèche (->) par deux fois les deux points (::).

Définition de la classe (PHP)

class MaClasse

{

    // ...

 

    public static $maVariableStatique;

 

    public function MaValuer() {

        return self::$maVariableStatique;

    }

}

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre