Pregunta tonta que sé,
De todos los tutoriales no explican por qué usan $ this.
¿Es $ esto como un objeto de una clase base en Codeigniter?
¡Cualquier explicación sería bienvenida! :)
Gracias
Pregunta tonta que sé,
De todos los tutoriales no explican por qué usan $ this.
¿Es $ esto como un objeto de una clase base en Codeigniter?
¡Cualquier explicación sería bienvenida! :)
Gracias
acabo de leer un gran post sobre esto y $ clases en general: http://query7.com/using-this-in-php
En PHP, la palabra clave “$ this” se utiliza como una referencia propia de una clase y puede usarlo para llamar y usar estas propiedades y métodos como que se muestran en el siguiente ejemplo.
$this
en PHP es el objeto actual. En una definición de clase, usa $this
para trabajar con el objeto actual. Tomar esta clase como un ejemplo:
class Hello {
public $data = 'hello';
function hi() {
$this->data = 'hi';
}
}
Usted puede crear una instancia de esta clase varias veces, pero $data
solamente se cambiará a hi
en esos objetos en los que ha llamado a la función:
$one = new Hello;
$two = new Hello;
$two->hi();
echo $one->data, "\n", $two->data;
Claro que este es un buen tutorial sobre el significado genérico de '$ this', pero no aborda específicamente codeigniter, que es de lo que se trata la pregunta. – jondavidjohn
$this
no es algo de CodeIgniter, pero de PHP. $this
se refiere al objeto actual.
Siempre que se crea una instancia de esta manera:
$something = new SomeClass();
Entonces $this
se refiere a la instancia que se crea a partir de SomeClass
, en este caso $something
. Siempre que esté en la clase, puede usar $this
para referirse a esta instancia. Así :
class SomeClass {
public $stuff = 'Some stuff';
public function doStuff()
{
$this->stuff;
}
}
En términos de CodeIgniter:
Se dará cuenta de que cada controlador en CodeIgniter extiende la clase base del controlador. El uso de $this
en un controlador le da acceso a todo lo que está definido en su controlador, así como a lo que se hereda del controlador base.
La mayor parte del uso que vamos a salir de $this
implica llamar a métodos que la clase base se ha cargado para usted - $this->load
, $this->uri
, etc.
Si no recuerdo mal, el código PHP en una vista se ejecuta en el contexto del controlador, por lo que tendrá acceso al objeto controlador con $this
desde allí también.
¿Qué pasa si no escribimos '$ this' ¿Funcionará en PHP? Como su trabajo en C++? podemos escribir cualquier miembro de datos con 'this' o sin' this' también en C++ ¿podemos hacerlo en PHP ???? –
@BilalMaqsood - no, PHP no es compatible con esa sintaxis. –
Para realmente respuesta su pregunta, $this
en realidad representa la instancia singleton Codeigniter (que en realidad es el objeto controlador).
Por ejemplo, al cargar bibliotecas/modelos, los adjunta a esta instancia para que pueda hacer referencia a ellos como una propiedad de esta instancia.
Otra forma de obtener esta instancia en codeigniter es la función get_instance()
que utiliza al compilar bibliotecas portátiles.
Es la forma de referenciar una instancia de una clase desde su interior, al igual que muchos otros lenguajes orientados a objetos. Desde los documentos PHP: la pseudovariable $ this está disponible cuando se llama un método desde un contexto de objeto. ... $ esto se usa principalmente para referirse a las propiedades de una clase
Esto no agrega nada a las muchas respuestas que recibió esta pregunta hace 6 años ... –
http://www.php.net/manual/en/language.oop5.basic.php para una introducción sobre '$ this' en sí. – mario