ceci et soi en PHP

Olorunfemi Akinlua 18 aout 2022
  1. POO en PHP
  2. this et self en PHP
ceci et soi en PHP

this et self sont des propriétés de composant de la programmation orientée objet (POO). La POO est une fonctionnalité de composant de PHP en tant que procédure de programmation plutôt que de programmation procédurale, où nous écrivons des fonctions qui effectuent des opérations de données.

Avec la POO, nous pouvons créer des objets qui ont à la fois des données et des fonctions (méthodes).

Cependant, la POO fournit un moyen plus rapide et plus complet de coder dans n’importe quel langage qui le prend en charge, y compris PHP. Certaines fonctionnalités ou propriétés peuvent être compliquées, telles que this et self et peuvent rendre l’utilisation de la POO peu amusante.

Cet article explique en quoi this et self sont différents et comment les utiliser en PHP.

POO en PHP

La POO fournit une structure claire pour vos programmes PHP et vous permet de suivre le principe populaire Ne vous répétez pas.

Les classes et les méthodes sont une grande partie de la POO en PHP et sont facilement créées à l’aide de l’extrait de code suivant.

<?php

class Good {

    public $propertyOne;
    public $propertyTwo;
    private $propertyThree;

    function methodOne($propertyOne) {
        //
    }
}

?>

Les $propertyOne, $propertyTwo, $propertyThree sont des propriétés de la classe Good et methodOne() est une méthode.

Nous pouvons créer des objets, l’objectif entier de la POO et la raison des classes et des méthodes, en utilisant cet extrait de code.

$goodOne = new Good();

this et self en PHP

Pour étendre le code actuel, nous pouvons créer une méthode pour définir le $propertyOne de la classe Good.

class Good {

		//...

		function setGoodName($propertyOne) {
        $this->propertyOne = $propertyOne;
    }

    function showGoodName() {
        return $this->propertyOne;
    }

}

Le mot-clé $this fait référence à l’objet courant et n’est disponible qu’à l’intérieur des méthodes d’une classe. Donc, si nous voulons utiliser $this dans notre code PHP, il doit être à l’intérieur d’une méthode de notre classe.

Dans le cas de l’extrait de code, le mot clé $this pointe vers l’objet actuel pour nous permettre d’appeler le $propertyOne dans la classe Good.

Utilisons les méthodes que nous avons créées.

$book = new Good();
$book->setGoodName("PHP for Dummies");

echo $book->showGoodName();

La sortie de l’extrait de code est ci-dessous.

PHP for Dummies

Étendons davantage notre code PHP et ajoutons une propriété à la classe Good concernant le magasin statique Name, rendons-le privé et renvoyons la propriété à un constructor.

class Good {

		//...
    private static $storeName = "JK Book Store";

    function __construct()
    {
        return self::$storeName;
    }

		//...
}

Le mot-clé self fait référence à la classe actuelle et nous permet d’accéder aux variables de classe et statiques comme dans l’extrait de code ci-dessus. Le mot-clé self utilise l’opérateur de résolution de portée :: pour accéder ou faire référence aux membres de la classe statique.

Par conséquent, une grande différence entre self et $this est que self accède à des variables ou méthodes statiques ou de classe et $this accède à des variables et méthodes non statiques et objets.

Ainsi, lorsque vous travaillez avec la POO, sachez que nous utilisons $this à l’intérieur des objets (instance d’une classe) et self pour les classes et les propriétés statiques.

Code source complet :

<?php

class Good {

		// properties
    public $propertyOne;
    public $propertyTwo;
    private $propertyThree;
    private static $storeName = "JK Book Store";

		// methods
    function __construct()
    {
        return self::$storeName;
    }

    function setGoodName($propertyOne) {
        $this->propertyOne = $propertyOne;
    }

    function showGoodName() {
        return $this->propertyOne;
    }

}

// creating a object
$book = new Good();
$book->setGoodName("PHP for Dummies");

echo $book->showGoodName();

?>
Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

Article connexe - PHP Class