Tracks
/
PHP
PHP
/
Ejercicios
/
Oficina de la ciudad
Oficina de la ciudad

Oficina de la ciudad

Ejercicio de aprendizaje

Introducción

Declaración de tipos

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

Uniones de tipos

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);

Tipos mixtos

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.

Instrucciones

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.

1. Declara los tipos para la clase Address

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.

2. Declara los tipos para rellenar el formulario con valores en blanco

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.

3. Declara el tipo al dividir un valor en letras separadas

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.

4. Declara el tipo al comprobar si un valor cabe en un formulario

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.

5. Declara el tipo al dar formato a una dirección en el formulario

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.

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
PHP Exercism

¿Todo listo para empezar Oficina de la ciudad?

Regístrate en Exercism para aprender y dominar PHP con 11 conceptos122 ejercicios y mentoría humana real, todo gratis.