Questão de Programação — PHP — Quadrix 2025
- Código
- qg595090
- Banca
- Quadrix
- Órgão
- CFO
- Ano
- 2025
- Nível
- Médio
- Cargo
- Técnico em Tecnologia da Informação
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO. A afirmação está incorreta porque, embora o PHP tenha tipagem dinâmica (o tipo é determinado em tempo de execução), isso não impede o uso de tipos primitivos — pelo contrário, o PHP possui tipos primitivos como int, float, string, bool, null, entre outros, e eles são amplamente utilizados. A tipagem dinâmica apenas significa que a variável não tem tipo fixo declarado, mas os valores que ela armazena possuem tipos bem definidos, inclusive os primitivos.
A tipagem dinâmica é uma característica de linguagens como PHP, Python, JavaScript e Ruby, em que o tipo da variável é inferido a partir do valor atribuído em tempo de execução. Isso difere da tipagem estática, usada em Java, C e C++, onde o tipo deve ser declarado explicitamente e não pode mudar. No PHP, por exemplo, uma variável pode começar como inteiro e depois receber uma string, sem necessidade de conversão explícita — mas isso não significa que os tipos primitivos não existam ou não sejam usados. Na verdade, o PHP possui um conjunto de tipos internos, incluindo os primitivos, e a documentação oficial os lista claramente.
A confusão que a banca explora aqui é associar "tipagem dinâmica" a "tudo é objeto" ou "não há tipos primitivos". Isso é um equívoco: a tipagem dinâmica diz respeito à verificação de tipos em tempo de execução, não à natureza dos tipos em si. Em PHP, os tipos primitivos são valores escalares (int, float, string, bool) que não são objetos, embora possam ser convertidos ou tratados como tal em certos contextos. A afirmação também erra ao dizer que "todas as variáveis sejam armazenadas de forma semelhante a objetos" — isso não é verdade para tipos primitivos, que são armazenados como valores simples.
Para entender melhor, compare com Java: Java é estaticamente tipada e possui tipos primitivos (int, double, boolean, etc.) que não são objetos. O PHP, por ser dinamicamente tipado, não exige declaração de tipo, mas os valores ainda têm tipos — e esses tipos incluem os primitivos. A diferença fundamental é quando o tipo é verificado: em tempo de compilação (estática) ou em tempo de execução (dinâmica). A tipagem dinâmica não elimina os tipos primitivos; ela apenas flexibiliza a declaração.
A pegadinha desta questão é justamente essa: o candidato pode pensar que "tipagem dinâmica" implica "tudo é objeto" ou "não há tipos primitivos", mas isso é falso. O PHP tem tipos primitivos e eles são usados normalmente. A banca inverte o conceito para induzir ao erro.
A afirmação contém dois erros principais:
"todas as variáveis sejam armazenadas de forma semelhante a objetos" — incorreto: variáveis com tipos primitivos (int, float, string, bool) são armazenadas como valores escalares, não como objetos. Apenas valores do tipo object são objetos de fato.
"o que impede o uso de tipos primitivos" — incorreto: o PHP possui tipos primitivos e eles são amplamente utilizados. A tipagem dinâmica não impede seu uso; apenas não exige declaração explícita.
A parte correta da afirmação é que o tipo é determinado em tempo de execução (tipagem dinâmica), mas isso não acarreta as consequências apontadas. Portanto, o item está ERRADO.
Para questões sobre tipagem, lembre-se: tipagem dinâmica ≠ ausência de tipos primitivos. A tipagem dinâmica refere-se ao momento da verificação de tipos (tempo de execução), enquanto tipos primitivos são categorias de dados básicas que existem em quase todas as linguagens. Em PHP, os tipos primitivos incluem int, float, string, bool e null. Sempre desconfie de afirmações que dizem que uma linguagem dinâmica "não tem tipos primitivos" ou que "tudo é objeto" — isso é uma generalização incorreta.
Gabarito: ERRADO.
Link permanente: /questoes/qg595090