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
- Un
traitdefine métodos sin una clase propia. use Greets;los copia dentro deRobotcomo métodos de instancia.- El trait llama a
$this->name(), que la clase anfitriona provee.
Palabras clave y builtins usados aquí
classechofunctionnewprivatepublicreturntraituse
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.
Paso 3 de 3 en Clases; paso 18 de 27 en Fundamentos del lenguaje.