supprimer Qu'est-ce que la variable $ this signifie en PHP?




sondage php sans base de donnée (6)

Je vois la variable $this en PHP tout le temps et je ne sais pas à quoi ça sert. Je ne l'ai jamais utilisé personnellement, et les moteurs de recherche ignorent le $ et je me retrouve avec une recherche pour le mot "ceci".

Quelqu'un peut-il me dire comment la variable $ cela fonctionne en PHP?

https://code.i-harness.com


$ ceci est une variable spéciale et fait référence au même objet ie. lui-même.

il fait référence à l'instance de la classe actuelle

Voici un exemple qui va effacer la déclaration ci-dessus

<?php
 class Books {
  /* Member variables */
  var $price;
  var $title;

  /* Member functions */
  function setPrice($par){
     $this->price = $par;
  }

  function getPrice(){
     echo $this->price ."<br/>";
  }

  function setTitle($par){
     $this->title = $par;
  }

  function getTitle(){
     echo $this->title ." <br/>";
  }
}
?> 

C'est le moyen de référencer une instance d'une classe depuis l'intérieur de lui-même, comme de nombreux autres langages orientés objet.

À partir des documents PHP :

La pseudo-variable $ this est disponible lorsqu'une méthode est appelée depuis un contexte d'objet. $ ceci est une référence à l'objet appelant (généralement l'objet auquel appartient la méthode, mais éventuellement un autre objet, si la méthode est appelée de manière statique dans le contexte d'un objet secondaire).


Il se réfère à l'instance de la classe actuelle, comme l' a dit meder .

Voir les documents PHP . C'est expliqué dans le premier exemple.


Je connais sa vieille question, de toute façon une autre explication exacte à propos de ceci . $ ceci est principalement utilisé pour référencer les propriétés d'une classe.

Exemple:

Class A
{
   public $myname;    //this is a member variable of this class

function callme() {
    $myname = 'function variable';
    $this->myname = 'Member variable';
    echo $myname;                  //prints function variable
    echo $this->myname;              //prints member variable
   }
}

sortie:

function variable

member variable

Lorsque vous créez une classe, vous avez (dans de nombreux cas) des variables d'instance et des méthodes (aka .fonctions). $ this accède à ces variables d'instance afin que vos fonctions puissent prendre ces variables et faire ce dont elles ont besoin pour faire ce que vous voulez avec elles.

une autre version de l'exemple de meder:

class Person {

    protected $name;  //can't be accessed from outside the class

    public function __construct($name) {
        $this->name = $name;
    }

    public function getName() {
        return $this->name;
    }
}
// this line creates an instance of the class Person setting "Jack" as $name.  
// __construct() gets executed when you declare it within the class.
$jack = new Person("Jack"); 

echo $jack->getName();

Output:

Jack

Voyons ce qui se passe si nous n'utilisons pas $ this et essayons d'avoir des variables d'instance et des arguments constructeurs portant le même nom avec l'extrait de code suivant

<?php

class Student {
    public $name;

    function __construct( $name ) {
        $name = $name;
    }
};

$tom = new Student('Tom');
echo $tom->name;

?>

Cela ne résonne rien mais

<?php

class Student {
    public $name;

    function __construct( $name ) {
        $this->name = $name; // Using 'this' to access the student's name
    }
};

$tom = new Student('Tom');
echo $tom->name;

?>

cela fait écho à "Tom"





this