Menu
Coddy logo textTech

La palabra clave $this

Parte de la sección Programación Orientada a Objetos del Journey de PHP de Coddy — lección 4 de 91.

La palabra clave $this se refiere a la instancia actual de una clase dentro de sus métodos. Le permite acceder y modificar las propiedades del objeto actual.

Aquí hay un ejemplo de una clase con métodos que usan $this:

<?php
class Car {
    public $color;
    public $model;

    public function honk() {
        echo "Beep beep!\n";
    }

    public function describe() {
        echo "I am a " . $this->color . " " . $this->model . "\n";
    }
}

La palabra clave $this se utiliza dentro de los métodos para hacer referencia al objeto que llamó al método.

Crea un objeto car y establece sus propiedades:

$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";

Ahora llama a los métodos:

$myCar->honk();
$myCar->describe();

Salida:

Beep beep!
I am a Red Sedan

Cuando llamas a $myCar->describe(), PHP establece automáticamente $this para referirse a $myCar. Así es como el método sabe a qué propiedades de objeto acceder.

Si tuvieras otro objeto car:

$otherCar = new Car();
$otherCar->color = "Blue";
$otherCar->model = "SUV";
$otherCar->describe(); // Soy un Blue SUV

Punto clave: $this siempre se refiere al objeto específico que llamó al método. Cada objeto obtiene su propio contexto cuando se ejecuta un método.

challenge icon

Desafío

Fácil

Completa la clase Car en car.php agregando un método llamado displayInfo que utilice la palabra clave $this para imprimir el año, la marca y el modelo del coche en el formato:

"This car is a [year] [make] [model]"

  • car.php: Contiene la definición de la clase Car donde agregarás el método displayInfo
  • driver.php: Archivo de ejecución principal que importa y utiliza la clase Car (bloqueado)

Hoja de referencia

La palabra clave $this se refiere a la instancia actual de una clase dentro de sus métodos, permitiéndote acceder y modificar las propiedades del objeto actual.

Usando $this en una clase:

<?php
class Car {
    public $color;
    public $model;

    public function describe() {
        echo "I am a " . $this->color . " " . $this->model . "\n";
    }
}

Creando un objeto y llamando a métodos:

$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";
$myCar->describe(); // Soy un Sedan Rojo

Cuando llamas a $myCar->describe(), PHP establece automáticamente $this para referirse a $myCar. Cada objeto obtiene su propio contexto cuando se ejecuta un método, por lo que $this siempre se refiere al objeto específico que llamó al método.

Pruébalo tú mismo

<?php
require_once 'car.php';

$myCar = new Car();
$myCar->year = 2020;
$myCar->make = "Toyota";
$myCar->model = "Corolla";

$myCar->displayInfo();
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación Orientada a Objetos