Questão de Programação — Linguagens de programação — Quadrix 2025
- Código
- qg595100
- Banca
- Quadrix
- Órgão
- CFO
- Ano
- 2025
- Nível
- Médio
- Cargo
- Técnico em Tecnologia da Informação
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: E — ERRADO. A afirmação está incorreta porque, em PHP, os tipos primitivos (como inteiros e strings) não são tratados automaticamente como objetos — eles são valores escalares. O PHP é uma linguagem de tipagem dinâmica e fraca, o que significa que as variáveis podem mudar de tipo em tempo de execução e que conversões entre tipos ocorrem implicitamente, mas isso não elimina a necessidade de conversão nem transforma primitivos em objetos.
O PHP é uma linguagem de programação amplamente utilizada para desenvolvimento web, criada por Rasmus Lerdorf em 1994. Uma de suas características mais marcantes é a tipagem dinâmica: uma variável pode armazenar um inteiro em um momento e uma string em outro, sem necessidade de declaração explícita de tipo. Isso difere de linguagens estaticamente tipadas, como Java e C, onde o tipo da variável é definido em tempo de compilação e não pode mudar.
Além de dinamicamente tipada, o PHP é considerado fracamente tipado. Isso significa que o interpretador realiza conversões automáticas de tipo quando necessário. Por exemplo, ao somar um inteiro com uma string numérica, o PHP converte a string para inteiro e realiza a operação. Essa conversão implícita é uma conveniência, mas não elimina a necessidade de conversões explícitas em muitos casos — como quando se deseja garantir que um valor seja tratado como string ou inteiro, ou ao comparar valores com === (que verifica tipo e valor).
A confusão entre "tipagem fraca" e "tratamento de primitivos como objetos" é comum. Em PHP, desde a versão 5, existe o conceito de tipos escalares (int, float, string, bool) que são distintos de objetos. Para tratar um valor primitivo como objeto, é necessário usar classes como IntlChar, Stringable ou funções como strval(), intval(). A linguagem não faz isso automaticamente. A orientação a objetos em PHP é um paradigma que coexiste com a programação procedural, mas os tipos primitivos permanecem como valores escalares.
A pegadinha desta questão está em associar a tipagem dinâmica e fraca do PHP com a ideia de que "tudo é objeto". Essa característica é típica de linguagens como Smalltalk ou Ruby, onde até os números são objetos. No PHP, isso não ocorre: um inteiro é um valor escalar, não um objeto. A conversão entre tipos é necessária em diversas situações, como ao concatenar strings com números ou ao validar entradas de formulários.
Guarde a distinção: tipagem dinâmica (o tipo é definido em tempo de execução) e tipagem fraca (conversões implícitas são permitidas) não significam que os primitivos são objetos. Essa é a fronteira que separa a afirmação correta da incorreta.
A afirmação está errada por três motivos principais:
Primitivos não são objetos: Em PHP, inteiros, floats, strings e booleanos são tipos escalares, não objetos. Eles não possuem métodos ou propriedades inerentes. Para tratá-los como objetos, seria necessário envolvê-los em classes específicas.
Conversão entre tipos é necessária: Embora o PHP faça conversões implícitas (tipagem fraca), isso não elimina a necessidade de conversões explícitas. Por exemplo, ao usar === para comparar valor e tipo, ou ao formatar dados para exibição, o programador frequentemente precisa converter explicitamente com (int), (string), intval(), strval(), entre outros.
A tipagem dinâmica não implica "tudo é objeto": A característica de "tudo é objeto" é de linguagens como Smalltalk e Ruby, não do PHP. O PHP adota um modelo híbrido, onde primitivos e objetos coexistem.
Para questões sobre tipagem, lembre-se da classificação: dinâmica (tipo definido em tempo de execução) × estática (tipo definido em tempo de compilação) e fraca (conversões implícitas) × forte (conversões explícitas). O PHP é dinâmico e fraco; Java é estático e forte. Essa combinação é o que a banca explora.
Gabarito: letra E — a afirmação é ERRADA.
Link permanente: /questoes/qg595100