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 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