Pular para o conteúdo principal

Questão de Programação — Tipos de dados — FGV 2025

ProgramaçãoTipos de dados
Código
fg108606
Banca
FGV
Órgão
DPE-RO
Ano
2025
Nível
Superior
Cargo
Analista Programador - Classe B
Analise o código PHP a seguir<!DOCTYPE html><html><body><pre><?php$b = 5.34; $c = 0; $f = "hello";$g = ""; $i = NULL;$b = (int) $b; $c = (float) $c;$f = (bool) $f; $g = (string) $g;$i = (bool) $i;var_dump(b);vardump(b); var_dump(c);var_dump(f);vardump(f); var_dump(g);var_dump($i);?></pre></body></html>Ao executar o código em um navegador, as saídas são respectivamente
  1. Abool(true)bool(false)bool(true)bool(false)bool(true)
  2. Bfloat(5)int(0)bool(true)string(0) ""bool(true)
  3. Cint(5)float(0)bool(true)string(0) ""bool(false)
  4. Dfloat(5.4)int(0)bool(true)string(NULL) ""bool(true)
  5. Efloat(5.4)int(0)bool(false)string(“”)bool(false)
Revelar gabarito e comentário

GabaritoC — int(5) float(0) bool(true) string(0) "" bool(false)

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 – Type Casting e saída de var_dump

Gabarito: letra C. O código realiza conversões explícitas de tipo (cast) e exibe cada variável com var_dump. As saídas são: int(5), float(0), bool(true), string(0) "" e bool(false). A única alternativa que reproduz essa sequência é a C.

Regras de cast no PHP

  • (int) sobre float: trunca a parte decimal (5.34 → 5).

  • (float) sobre int: 0 → float(0).

  • (bool) sobre string não vazia (exceto "0"): true. "hello" → true.

  • (string) sobre string vazia: mantém string vazia (string(0) "").

  • (bool) sobre NULL: false.

Alternativa A — ❌ Incorreta

Todas as saídas são booleanas, o que não corresponde aos casts aplicados. As primeiras duas deveriam ser int e float.

Alternativa B — ❌ Incorreta

Erro nos tipos das duas primeiras: a primeira é float(5), o correto é int(5); a segunda é int(0), o correto é float(0). A última também está errada: bool(true) em vez de bool(false).

Alternativa C — ✅ Correta ⟵ GABARITO

Sequência exata:

  • int(5)

  • float(0)

  • bool(true)

  • string(0) ""

  • bool(false)

Alternativa D — ❌ Incorreta

  • Primeira: float(5.4) (deveria ser int(5), pois o cast trunca).

  • Quarta: string(NULL) "" – a sintaxe correta é string(0) "".

  • Quinta: bool(true) (deveria ser bool(false)).

Alternativa E — ❌ Incorreta

  • Primeira: float(5.4) (erro de truncamento).

  • Terceira: bool(false) – mas "hello" é não vazio, resulta em bool(true).

  • Quarta: string("") – a representação correta é string(0) "".

NÃO CAIA NESSA!

Cuidado com o truncamento do (int) sobre float: a banca pode esperar que você saiba que 5.34 vira 5 (não 5.4) e que o bool de string vazia ou NULL é false, enquanto qualquer string não vazia (exceto "0") é true.

Gabarito: letra C.

Link permanente: /questoes/fg108606