Pular para o conteúdo principal

Questão de Programação — Python — Quadrix 2024

ProgramaçãoPython
Código
qg354246
Banca
Quadrix
Órgão
IBICT
Ano
2024
Nível
Superior
Cargo
Tecnologista - Tecnologia da Informação
Quanto às linguagens PHP e Python, à estrutura e às construções básicas de um programa e ao controle de fluxo de programas e repetição, julgue o item.Em PHP, a palavra‑chave instanceof tem como função avaliar a string fornecida no parâmetro code como um código PHP.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

PHP: a palavra-chave instanceof

Gabarito: ERRADO. A palavra-chave instanceof em PHP é um operador de verificação de tipo, usado para testar se um objeto é uma instância de uma determinada classe, ou se implementa uma interface — e não tem absolutamente nada a ver com avaliar strings como código PHP. A função que avalia uma string como código PHP é a eval(), e é essa confusão que a banca explora no item.

O instanceof é um operador binário do PHP, presente desde a versão 5, que responde à pergunta "este objeto é uma instância desta classe?" (ou de uma subclasse, ou de uma classe que implementa determinada interface). Ele retorna true ou false e é amplamente utilizado em código orientado a objetos para verificação de tipo antes de realizar operações específicas. Por exemplo, em um sistema com uma hierarquia de classes Animal, Cachorro e Gato, você pode usar $animal instanceof Cachorro para saber se a variável $animal aponta para um objeto da classe Cachorro.

A função que realmente avalia uma string como código PHP é a eval(). Ela recebe uma string contendo código PHP válido e o executa como se fosse parte do script. É uma função perigosa, pois permite a execução de código arbitrário, e seu uso é desaconselhado em aplicações reais por questões de segurança. A confusão entre instanceof e eval() é uma pegadinha clássica em provas de programação, pois ambas são palavras-chave/funções do PHP, mas com propósitos completamente distintos.

Para fixar: instanceof é um operador de tipo (verificação de herança/interface), enquanto eval() é uma função que executa código dinamicamente. A banca trocou a função de um pelo outro, criando uma afirmação falsa. O candidato que conhece a função real de instanceof identifica o erro imediatamente.

NÃO CAIA NESSA!

A banca troca a função do operador instanceof pela função da função eval(). O candidato que sabe que instanceof verifica tipo (herança/interface) e que eval() executa código a partir de string não cai nessa. Guarde o par: instanceof = verificação de tipo; eval() = execução de código.

PHP: instanceof × eval()
  • 1instanceof
    • Operador de verificação de tipo
    • Testa se objeto é instância de classe/interface
    • Retorna true ou false
  • 2eval()
    • Função que executa string como código PHP
    • Uso perigoso (código arbitrário)
LEVEL · soulevel.com.br

Item — ❌ ERRADO

A afirmação diz que instanceof tem como função avaliar a string fornecida no parâmetro code como um código PHP. Isso é falso. O instanceof é um operador de verificação de tipo, que testa se um objeto é instância de uma classe específica, de uma subclasse ou de uma classe que implementa uma interface. A função que avalia uma string como código PHP é a eval(), que recebe uma string e a executa como código PHP. Portanto, o item está errado.

Gabarito: ERRADO

Link permanente: /questoes/qg354246