¿Qué significa la variable $this en PHP?
Veo la variable $this
en PHP todo el tiempo y no tengo idea de para qué se usa. Nunca lo he usado personalmente.
¿Alguien puede decirme cómo $this
funciona la variable en PHP?
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.
La mejor manera de aprender sobre la $this
variable 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 $this
pseudovariable 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;
}
}
$this
es una referencia a un PHP Object
creado por el intérprete para usted, que contiene una matriz de variables.
Si llama $this
dentro de un método normal en una clase normal, $this
devuelve el Objeto (la clase) al que pertenece ese método.
Es posible que $this
no 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 $this
se comporta según el contexto.
https://www.php.net/manual/en/language.oop5.basic.php
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