Veo la variable $thisen 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 $thisen 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
$thisvariable en PHP es probarla con el intérprete en varios contextos: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:$thises una referencia a un PHPObjectque fue creado 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) a la que pertenece ese método.Es posible
$thisque 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
$thiscomporta 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
$thisen el segundo constructor.$nameestá 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
$thises 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
publicpalabra 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 deClass1con todo su contenido. Y tiramos todo el contenido de$object1usarvar_dump().Esto te dará
Así que todos los contenidos de
Class1están$object1incluidos, exceptoMethod1, no sé por qué los métodos no se muestran al volcar objetos.Ahora, ¿qué pasa si queremos acceder
$property1solo. 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
$property1desde adentroMethod1(), haré estocreamos
$object2 = new Class1;que es una nueva copia deClass1o podemos decir una instancia. Luego señalamosproperty1desde$object2Esto se imprimirá
string(15) "I am property 1"en el navegador.Ahora en lugar de hacer esto por dentro
Method1()Nosotros hacemos esto
El
$thisobjeto 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=119tienen 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