Oi Geovanna!
Parece que o PHPStorm está te alertando sobre uma condição que sempre será verdadeira, enquanto o VSCode não está mostrando essa mensagem. Vamos dar uma olhada no seu código:
<?php
echo "Bem-vindo(a) ao screen match";
$nomeFilme = 'As Branquelas';
$anoLancamento = 2021;
$notaFilme = 8.8;
$incluidoNoPlano = true;
$genero = match ($nomeFilme) {
"As Branquelas" => "Comedia",
"Interestellar" => "Ficcao",
"O Protetor" => "Acao",
};
echo "O genero do filme e: $genero";
O erro "Condition is always 'true' because '$nomeFilme' is evaluated at this point" está relacionado ao fato de que $nomeFilme
já tem um valor definido antes de ser usado no match
. Isso significa que, no contexto atual, o match
sempre encontrará um valor correspondente, tornando a condição sempre verdadeira.
Para resolver isso, você pode adicionar um caso default
no match
para tratar qualquer valor que não corresponda aos casos fornecidos. Isso ajudará a evitar qualquer confusão e tornará o código mais robusto. Veja como ficaria:
<?php
echo "Bem-vindo(a) ao screen match";
$nomeFilme = 'As Branquelas';
$anoLancamento = 2021;
$notaFilme = 8.8;
$incluidoNoPlano = true;
$genero = match ($nomeFilme) {
"As Branquelas" => "Comedia",
"Interestellar" => "Ficcao",
"O Protetor" => "Acao",
default => "Genero desconhecido",
};
echo "O genero do filme e: $genero";
Com essa alteração, o match
agora tem um caso padrão (default
) que será usado se $nomeFilme
não corresponder a nenhum dos valores especificados. Isso deve resolver o alerta no PHPStorm.
Espero ter ajudado e bons estudos!