typestar

Interfaces en PHP

Un contrato, dos figuras y un bucle al que ninguna le importa.

<?php
interface Shape {
    public function area(): float;
}

class Circle implements Shape {
    public function __construct(private float $r) {}
    public function area(): float { return M_PI * $this->r ** 2; }
}

class Square implements Shape {
    public function __construct(private float $side) {}
    public function area(): float { return $this->side ** 2; }
}

foreach ([new Circle(1.0), new Square(2.0)] as $shape) {
    printf("%.2f\n", $shape->area());
}

Cómo funciona

  1. interface Shape promete un método area y nada más.
  2. Circle y Square lo cumplen cada una con su propia geometría.
  3. El bucle trata a ambas como Shape — polimorfismo sin herencia.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
443
Tokens
102
Ritmo de tres estrellas
80 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →

Interfaces en otros lenguajes