Las declaraciones de tipo en PHP proporcionan aserciones de tipo en tiempo de ejecución para los argumentos de las funciones, los valores de retorno y las propiedades de las clases.
En las funciones, se puede añadir un tipo de retorno void para indicar que la función no devuelve ningún valor.
Los tipos declarados también sirven como aserciones en tiempo de ejecución de que las funciones devuelven una respuesta con un tipo razonable.
<?php
class Driver
{
private int $serial_number;
public function setSerialNumber(int $number): void
{
$this->serial_number = $number;
}
public function getSerialNumber(): int
{
return $this->serial_number;
}
}
$driver = new Driver();
$driver->setSerialNumber("Version 1b"); // This will throw a TypeError
Si un argumento de una función, un valor de retorno o una propiedad de una clase puede ser de más de un tipo, se puede declarar una unión de tipos.
<?php
class IdentityCard
{
private int|null $id = null;
public function assign(int|float $id): void
{
$this->id = intval($id);
}
}
$card = new IdentityCard();
$card->assign(5.0);
Cuando trabajamos con código, puede que no seamos capaces de especificar un tipo.
A partir de PHP 8.0, se proporciona un tipo de escape llamado mixed.
Mixed equivale a una unión de tipos de object|resource|array|string|float|int|bool|null.
Llevas un tiempo trabajando en la oficina de la ciudad y has desarrollado un conjunto de herramientas que agilizan tu trabajo diario, por ejemplo, para rellenar formularios.
Ahora se te une un nuevo colega y te diste cuenta de que puede que tus herramientas no se expliquen por sí solas. Hay muchas convenciones raras en tu oficina, como rellenar siempre los formularios con letras mayúsculas y evitar dejar campos vacíos.
Como primer paso, decides añadir declaraciones de tipos de PHP para que a tu nuevo colega le resulte más fácil sumarse y empezar a usar tus herramientas.
Añade declaraciones de tipo de propiedad a cada una de las propiedades declaradas de la clase Address.
Cada propiedad de la clase debe declararse como string.
Añade una declaración de tipo de parámetro y una declaración de tipo de retorno al método blanks de la clase Form.
El método debe recibir una longitud entera y devolver una representación en forma de string de la línea en blanco.
Añade una declaración de tipo de parámetro y una declaración de tipo de retorno al método letters de la clase Form.
El método debe recibir un string, que representa palabras, y devolver un array de letras.
Añade declaraciones de tipo de parámetro y una declaración de tipo de retorno al método checkLength de la clase Form.
El método debe recibir una palabra en forma de string y una longitud máxima entera, y devolver un valor verdadero o falso.
Añade una declaración de tipo de parámetro, haciendo uso de la clase Address que actualizaste antes, y una declaración de tipo de retorno al método formatAddress de la clase Form.
El método debe recibir un Address y devolver un string con formato.
Regístrate en Exercism para aprender y dominar PHP con 11 conceptos122 ejercicios y mentoría humana real, todo gratis.