Observe o trecho de código, em PHP 5, abaixo:(new class { pu...
Observe o trecho de código, em PHP 5, abaixo:
(new class { public function m($text) { echo $text; } })->m("hello");
Assinale a alternativa correta com relação ao código exposto.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B - Faz uso do recurso chamado de classes anônimas.
A questão aborda o conceito de classes anônimas no PHP, uma característica que permite a declaração e instância de uma classe sem atribuir um nome a ela. As classes anônimas são úteis para criar objetos simples e de uso único, evitando a necessidade de criar uma classe completa com um nome definido quando a funcionalidade desejada é limitada ou será utilizada apenas uma vez.
Para resolver essa questão, é necessário entender que classes anônimas foram introduzidas no PHP 7, e não estão disponíveis em versões anteriores como o PHP 5. Portanto, o código apresentado na questão não seria válido em PHP 5, mas a questão especificamente está pedindo para identificar o recurso sendo demonstrado, não sua compatibilidade com a versão do PHP.
A alternativa B está correta porque descreve com precisão o que o trecho de código apresentado está fazendo dentro do contexto das funcionalidades do PHP. O código cria um novo objeto de uma classe que não tem nome, ou seja, uma classe anônima, e imediatamente chama o método m
deste objeto, que imprime uma string. Este comportamento é característico das classes anônimas, que podem ser instanciadas e utilizadas no mesmo ponto em que são definidas.
Ao examinar as outras alternativas, podemos verificar que não são aplicáveis:
- A alternativa A está incorreta, pois o código seria válido em PHP 7, mas não em PHP 5, e a questão pede para identificar o recurso utilizado, não a compatibilidade com a versão.
- A alternativa C está incorreta porque o PHP não suporta o conceito de classes internas como linguagens como Java.
- A alternativa D está incorreta pois não existe um conceito de "classes temporárias" no PHP; o termo não é usado para descrever classes anônimas ou qualquer outra funcionalidade do PHP.
- A alternativa E está incorreta porque o método chamado
m
não é anônimo, ele é explicitamente definido na classe anônima.
Portanto, a compreensão do conceito de classes anônimas e suas aplicações é essencial para identificar corretamente a alternativa B como a resposta correta para esta questão.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Está errado pois no PHP 5 não tem isso. Gabarito correto letra A?
Consultando o manual do PHP, diz que as classes anônimas foram implementadas a partir do PHP7, Logo, a resposta teria de ser a letra A.
Concordo que a questão deveria ser anulada, mas incrivelmente NINGUÉM entrou com recurso na questão... Assim, mantiveram o gabarito B
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo