¿Qué significa la variable $this en PHP?

Resuelto waiwai933 asked hace 54 años • 11 respuestas

Veo la variable $thisen PHP todo el tiempo y no tengo idea de para qué se usa. Nunca lo he usado personalmente.

¿Alguien puede decirme cómo $thisfunciona la variable en PHP?

waiwai933 avatar Jan 01 '70 08:01 waiwai933
Aceptado

Es una referencia al objeto actual y se usa más comúnmente en código orientado a objetos.

  • Referencia: http://www.php.net/manual/en/language.oop5.basic.php
  • Introducción: http://www.phpro.org/tutorials/Object-Oriented-Programming-with-PHP.html

Ejemplo:

<?php
class Person {
    public $name;

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

$jack = new Person('Jack');
echo $jack->name;

Esto almacena la cadena 'Jack' como una propiedad del objeto creado.

meder omuraliev avatar Oct 06 '2009 03:10 meder omuraliev

La mejor manera de aprender sobre la $thisvariable en PHP es probarla con el intérprete en varios contextos:

print isset($this);              //true,   $this exists
print gettype($this);            //Object, $this is an object 
print is_array($this);           //false,  $this isn't an array
print get_object_vars($this);    //true,   $this's variables are an array
print is_object($this);          //true,   $this is still an object
print get_class($this);          //YourProject\YourFile\YourClass
print get_parent_class($this);   //YourBundle\YourStuff\YourParentClass
print gettype($this->container); //object
print_r($this);                  //delicious data dump of $this
print $this->yourvariable        //access $this variable with ->

Entonces, la $thispseudovariable tiene las propiedades y el método del objeto actual. Esto es útil porque le permite acceder a todas las variables miembro y métodos miembros dentro de la clase. Por ejemplo:

Class Dog{
    public $my_member_variable;                             //member variable

    function normal_method_inside_Dog() {                   //member method

        //Assign data to member variable from inside the member method
        $this->my_member_variable = "whatever";

        //Get data from member variable from inside the member method.
        print $this->my_member_variable;
    }
}

$thises una referencia a un PHP Objectcreado por el intérprete para usted, que contiene una matriz de variables.

Si llama $thisdentro de un método normal en una clase normal, $thisdevuelve el Objeto (la clase) al que pertenece ese método.

Es posible que $thisno esté definido si el contexto no tiene un objeto principal.

php.net tiene una página grande que habla sobre la programación orientada a objetos de PHP y cómo $thisse comporta según el contexto. https://www.php.net/manual/en/language.oop5.basic.php

Eric Leschinski avatar Dec 11 '2013 18:12 Eric Leschinski

Sé que es una vieja pregunta, de todos modos otra explicación exacta sobre $this . $this se usa principalmente para hacer referencia a propiedades de una clase.

Ejemplo:

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

producción:

function variable

member variable
loyola avatar Feb 24 '2015 06:02 loyola