Veo la variable $this
en PHP todo el tiempo y no tengo idea para qué se usa. Nunca lo he usado personalmente.
¿Alguien puede decirme cómo funciona la variable $this
en PHP?
Es una referencia al objeto actual, se usa más comúnmente en código orientado a objetos.
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: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:$this
es una referencia a un PHPObject
que fue 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) a la que pertenece ese método.Es posible
$this
que no esté definido si el contexto no tiene un objeto padre.php.net tiene una gran página que habla sobre la programación orientada a objetos PHP y cómo se
$this
comporta según el contexto. https://www.php.net/manual/en/language.oop5.basic.phpfuente
Sé su vieja pregunta, de todos modos otra explicación exacta sobre $ this . $ esto se usa principalmente para referir propiedades de una clase.
Ejemplo:
salida:
fuente
Es la forma de hacer referencia a una instancia de una clase desde dentro de sí misma, al igual que muchos otros lenguajes orientados a objetos.
De los documentos de PHP :
fuente
Veamos qué sucede si no usamos $ this e intentamos tener variables de instancia y argumentos de constructor con el mismo nombre con el siguiente fragmento de código
No hace eco nada más que
esto se hace eco de 'Tom'
fuente
$this
en el segundo constructor.$name
está Tom, pero fuera de la función, no tiene ningún valor, porque su alcance se limita al de la función.cuando crea una clase, tiene (en muchos casos) variables de instancia y métodos (también conocidos como funciones). $ this accede a esas variables de instancia para que sus funciones puedan tomar esas variables y hacer lo que necesitan para hacer lo que quiera con ellas.
otra versión del ejemplo de Meder:
fuente
$this
es una referencia al objeto de llamada (normalmente el objeto al que pertenece el método, pero posiblemente otro objeto, si el método se llama estáticamente desde el contexto de un objeto secundario).fuente
$ esta es una variable especial y se refiere al mismo objeto, es decir. sí mismo.
en realidad se refiere a la instancia de la clase actual
aquí hay un ejemplo que aclarará la declaración anterior
fuente
Esta es una explicación larga y detallada. Espero que esto ayude a los principiantes. Lo haré muy simple.
Primero, creemos una clase
Puede omitir la etiqueta de cierre de php
?>
si solo usa código php.Ahora agreguemos propiedades y un método dentro
Class1
.La propiedad es solo una variable simple, pero le damos el nombre de propiedad porque está dentro de una clase.
El método es solo una función simple, pero decimos método porque también está dentro de una clase.
los
public
palabra clave significa que se puede acceder al método o propiedad en cualquier parte del script.Ahora, ¿cómo podemos usar las propiedades y el método dentro
Class1
?La respuesta es crear una instancia o un objeto, piense en un objeto como una copia de la clase.
Creamos un objeto, que es
$object1
, que es una copia deClass1
con todo su contenido. Y tiramos todo el contenido de$object1
usarvar_dump()
.Esto te dará
Así que todos los contenidos de
Class1
están$object1
incluidos, exceptoMethod1
, no sé por qué los métodos no se muestran al volcar objetos.Ahora, ¿qué pasa si queremos acceder
$property1
solo. Es simple, lo hacemosvar_dump($object1->property1);
, acabamos de agregar->property1
, lo señalamos.también podemos acceder
Method1()
, lo hacemosvar_dump($object1->Method1());
.Ahora suponga que quiero acceder
$property1
desde adentroMethod1()
, haré estocreamos
$object2 = new Class1;
que es una nueva copia deClass1
o podemos decir una instancia. Luego señalamosproperty1
desde$object2
Esto se imprimirá
string(15) "I am property 1"
en el navegador.Ahora en lugar de hacer esto por dentro
Method1()
Nosotros hacemos esto
El
$this
objeto se usa dentro de la clase para referirse a la propia clase.Es una alternativa para crear un nuevo objeto y luego devolverlo así
Otro ejemplo
Creamos 2 propiedades que contienen números enteros y luego las agregamos y ponemos el resultado en
$this->result
.No olvides eso
$this->property1
=$property1
=119
tienen el mismo valor .. etc.
Espero que eso explique la idea.
Esta serie de videos te ayudará mucho en OOP
https://www.youtube.com/playlist?list=PLe30vg_FG4OSEHH6bRF8FrA7wmoAMUZLv
fuente
Se refiere a la instancia de la clase actual, como dijo Meder .
Consulte los documentos de PHP . Se explica en el primer ejemplo.
fuente