1
resposta

[Projeto] Faça como eu fiz: separe em funções

<?php

echo "Bem-vindo(a) ao screen match!\n";

// Aula 1.3 - Criada a funcao
function mensagemLancamento (int $ano){
    if ($ano > 2022) {
        echo "Esse filme é um lançamento\n";
    } elseif($ano > 2020 && $ano <= 2022) {
        echo "Esse filme ainda é novo\n";
    } else {
        echo "Esse filme não é um lançamento\n";
    }
}

// Aula 1.4 - Criada a funcao
function incluidoNoPlano (bool $planoPrime,int $anoLancamento): bool {
    return $planoPrime || $anoLancamento < 2020;
}

$nomeFilme = "Top Gun - Maverick";
$anoLancamento = 2022;
$ano = 1999;

$quantidadeDeNotas = $argc - 1;
$notas = [];

for ($contador = 1; $contador < $argc; $contador++) {
    $notas[] = (float) $argv[$contador];
}

$notaFilme = array_sum($notas) / $quantidadeDeNotas;
$planoPrime = false;

echo "Nome do filme: " . $nomeFilme . "\n";
echo "Nota do filme: $notaFilme\n";
echo "Ano de lançamento: $anoLancamento\n";

$genero = match ($nomeFilme) {
    "Top Gun - Maverick" => "ação",
    "Thor: Ragnarok" => "super-herói",
    "Se beber não case" => "comédia",
    default => "gênero desconhecido",
};

// Aula 1.3 - Retornando a mensagem
mensagemLancamento ($ano);

// Aula 1.4 - Retornando a o plano
$incluidoNoPlano = incluidoNoPlano ($planoPrime,$anoLancamento);
var_dump($incluidoNoPlano);

echo "O gênero do filme é: $genero\n";

$filme = [
    "nome" => "Thor: Ragnarok",
    "ano" => 2021,
    "nota" => 7.8,
    "genero" => "super-herói",
];
1 resposta

Oii Michael,

Ficou muito bom. É notável como seu código está evoluindo e ficando mais estruturado.

Você aplicou corretamente o conceito de extração de lógica para funções, o que facilita muito a leitura e a manutenção futura. Gostaria de destacar um ponto excelente na sua implementação: a Tipagem Forte.

Ao declarar function mensagemLancamento(int $ano) e function incluidoNoPlano(...): bool, você está garantindo que o PHP avise caso um dado incorreto seja passado. Isso é uma prática profissional que evita muitos erros "silenciosos" no sistema.

Tenho apenas uma observação sobre a lógica das variáveis para você se atentar:

No seu código, você declarou duas variáveis de ano:

  1. $anoLancamento = 2022; (referente ao Top Gun)
  2. $ano = 1999; (uma variável solta)

Na hora de chamar a função, você usou:

mensagemLancamento($ano); // Vai processar 1999

Isso fará com que o sistema diga "Esse filme não é um lançamento", mesmo o filme sendo Top Gun (2022). Para conectar a lógica corretamente ao filme do contexto, o ideal seria passar a variável $anoLancamento como parâmetro.

Continue explorando essas funcionalidades modernas do PHP, como o match que você usou, pois elas deixam o código muito mais limpo.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!