[PHP] Utilisation de $this->
Technus
-
LeFredd -
LeFredd -
Bonjour,
class Panier {
var $items;
function add_item ($artnr, $num) {
$this->items[$artnr] += $num;
}
}
Je programme du php depuis quelques années en amateur, et je ne comprend toujours pas ce à quoi le $this sert !?
- Pourquoi ne pas faire simplement :
$items[$artnr] += $num;
- Et quelle valeur $this prend ?
- Et à quoi sert le "var" ? Est-il obligatoire ?
Merci d'avance :)
(j'aurais peut-être quelques autres questions à vous poser, en ce moment je me lance dans les Classes)
class Panier {
var $items;
function add_item ($artnr, $num) {
$this->items[$artnr] += $num;
}
}
Je programme du php depuis quelques années en amateur, et je ne comprend toujours pas ce à quoi le $this sert !?
- Pourquoi ne pas faire simplement :
$items[$artnr] += $num;
- Et quelle valeur $this prend ?
- Et à quoi sert le "var" ? Est-il obligatoire ?
Merci d'avance :)
(j'aurais peut-être quelques autres questions à vous poser, en ce moment je me lance dans les Classes)
A voir également:
- $This php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Php alert ✓ - Forum PHP
- Please power down and connect the pcie power cable for this graphics card - Forum Carte graphique
- Hijack this - Télécharger - Antivirus & Antimalwares
2 réponses
1- Dans une classe, quand tu as une méthode qui a besoin d'accéder aux propriétés de cette classe pour lui attribuer une valeur par exemple, alors il faut utiliser le mot clé $this. Prend ça comme une convention.
-> $this permet donc à une méthode (entre autre) d'accéder aux propriétés de ta classe.
2- Maintenant pour être dans le concret lorsque tu instancies ta classe pour en faire un objet, tu peux remplacer mentalement le mot clé $this par le nom de l'objet que tu viens de créer pour que se soit plus clair pour toi, et parceque réellement $this représente l'objet instancié.
Je m'explique: imagines une classe :
class Personnage()
{
public $nom;
public $parler;
// Je viens de définir 2 propriétés qui définiront mon futur objet Personnage
public function donnerUnNom($nomPerso)
{
$this->nom = $nomPerso;
}
// Le contenu de cette méthode veux dire que lorsque tu l'appelles, elle donne une valeur (correspondant à l'argument que tu lui a passé) à la propriété $nom, de l'objet Personnage.
// Exemple :
// $toto = new Personnage();
// je veux donner un nom à toto :
// $toto->donnerUnNom('Des Blagues');
// C'est là ou tu peux remplacer mentalement le mot clé $this par $toto. Ce qui donnerai : "Le nom de $toto est égal à l'argument $nomPerso de la méthode donnerUnNom() qui vaut Des Blagues.
// Ici la propriété $nom vaut donc Des Blagues.
// Maintenant si tu veux afficher le nom de ton personnage, il faudrait que tu crée une méthode qui te permette d'afficher le nom ex :
public function afficherNom()
{
echo $this->nom;
// ici tu peux dire mentalement "affiche le nom de l'objet $toto"
}
}
//Ici on est en dehors de la classe. Si je reprend mon exemple plus haut cela donne :
$toto = new Personnage();
// on instancie la classe pour en faire un objet $toto.
$toto->donnerUnNom('Des Blagues');
// avec l'objet créé, on appelle la méthode qui sert à donner un nom à son personnage.
$toto->afficherNom();
// ici on appelle la méthode qui affichera le nom(correspondant à la propriété $nom) de l'objet, donc : Des Blagues
Voilà j'espère t'avoir éclairé ;)
-> $this permet donc à une méthode (entre autre) d'accéder aux propriétés de ta classe.
2- Maintenant pour être dans le concret lorsque tu instancies ta classe pour en faire un objet, tu peux remplacer mentalement le mot clé $this par le nom de l'objet que tu viens de créer pour que se soit plus clair pour toi, et parceque réellement $this représente l'objet instancié.
Je m'explique: imagines une classe :
class Personnage()
{
public $nom;
public $parler;
// Je viens de définir 2 propriétés qui définiront mon futur objet Personnage
public function donnerUnNom($nomPerso)
{
$this->nom = $nomPerso;
}
// Le contenu de cette méthode veux dire que lorsque tu l'appelles, elle donne une valeur (correspondant à l'argument que tu lui a passé) à la propriété $nom, de l'objet Personnage.
// Exemple :
// $toto = new Personnage();
// je veux donner un nom à toto :
// $toto->donnerUnNom('Des Blagues');
// C'est là ou tu peux remplacer mentalement le mot clé $this par $toto. Ce qui donnerai : "Le nom de $toto est égal à l'argument $nomPerso de la méthode donnerUnNom() qui vaut Des Blagues.
// Ici la propriété $nom vaut donc Des Blagues.
// Maintenant si tu veux afficher le nom de ton personnage, il faudrait que tu crée une méthode qui te permette d'afficher le nom ex :
public function afficherNom()
{
echo $this->nom;
// ici tu peux dire mentalement "affiche le nom de l'objet $toto"
}
}
//Ici on est en dehors de la classe. Si je reprend mon exemple plus haut cela donne :
$toto = new Personnage();
// on instancie la classe pour en faire un objet $toto.
$toto->donnerUnNom('Des Blagues');
// avec l'objet créé, on appelle la méthode qui sert à donner un nom à son personnage.
$toto->afficherNom();
// ici on appelle la méthode qui affichera le nom(correspondant à la propriété $nom) de l'objet, donc : Des Blagues
Voilà j'espère t'avoir éclairé ;)