Observe o trecho de código, em PHP 5, abaixo:(new class { pu...

Próximas questões
Com base no mesmo assunto
Q1950630 Programação

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.

Alternativas

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