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
interface Shapepromete un métodoareay nada más.CircleySquarelo cumplen cada una con su propia geometría.- El bucle trata a ambas como
Shape— polimorfismo sin herencia.
Palabras clave y builtins usados aquí
asclassforeachfunctionimplementsinterfacenewprintfprivatepublicreturn
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.
Paso 2 de 3 en Clases; paso 17 de 27 en Fundamentos del lenguaje.