As declarações de tipo em PHP fornecem asserções de tipo em tempo de execução para argumentos de funções, valores de retorno e propriedades de classe.
Em funções, um tipo de retorno void pode ser adicionado para indicar que nenhum valor é retornado pela função.
Os tipos declarados também servem como asserções em tempo de execução de que as funções estão retornando uma resposta com um tipo razoável.
<?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
Se um argumento de função, valor de retorno ou propriedade de classe puder ser de mais de um tipo, uma união de tipos pode ser declarada.
<?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);
Ao trabalhar com código, nem sempre é possível especificar um tipo.
A partir do PHP 8.0, é fornecido um tipo de escape chamado mixed.
Mixed é equivalente a uma união de tipos de object|resource|array|string|float|int|bool|null.
Você trabalha no escritório da cidade há um tempo e desenvolveu um conjunto de ferramentas que agilizam seu dia a dia, por exemplo para preencher formulários.
Agora, um novo colega está se juntando a você, e você percebeu que suas ferramentas podem não ser autoexplicativas. Existem muitas convenções estranhas no seu escritório, como sempre preencher formulários com letras maiúsculas e evitar deixar campos vazios.
Como primeiro passo, você decide adicionar declarações de tipo do PHP para que seu novo colega possa entrar em ação e começar a usar suas ferramentas com mais facilidade.
Adicione declarações de tipo às propriedades declaradas da classe Address.
Cada propriedade da classe deve ser declarada como uma string.
Adicione uma declaração de tipo de parâmetro e uma declaração de tipo de retorno ao método blanks da classe Form.
O método deve receber um comprimento como número inteiro e retornar uma string que representa a linha em branco.
Adicione uma declaração de tipo de parâmetro e uma declaração de tipo de retorno ao método letters da classe Form.
O método deve receber uma string, representando palavras, e retornar um array de letras.
Adicione declarações de tipo de parâmetro e uma declaração de tipo de retorno ao método checkLength da classe Form.
O método deve receber uma palavra como string e um comprimento máximo como número inteiro, e retornar um valor true ou false.
Adicione uma declaração de tipo de parâmetro, usando a classe Address atualizada anteriormente, e uma declaração de tipo de retorno ao método formatAddress da classe Form.
O método deve receber um Address e retornar uma string formatada.
Crie sua conta no Exercism para aprender e dominar PHP com 11 conceitos122 exercícios e mentoria humana de verdade, tudo de graça.