typestar

Traits en PHP

Compartir comportamiento entre clases sin herencia.

<?php
// a trait holds methods; use mixes them into any class
trait Greets {
    public function greet(): string {
        return "hi, I am " . $this->name();
    }
}

class Robot {
    use Greets;

    public function __construct(private int $id) {}

    public function name(): string {
        return "unit-" . $this->id;
    }
}

echo (new Robot(7))->greet(), "\n";

Cómo funciona

  1. Un trait define métodos sin una clase propia.
  2. use Greets; los copia dentro de Robot como métodos de instancia.
  3. El trait llama a $this->name(), que la clase anfitriona provee.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
329
Tokens
70
Ritmo de tres estrellas
80 tpm

Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 52 segundos.

Escribe este fragmento

Paso 3 de 3 en Clases; paso 18 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →

Traits en otros lenguajes