← Questões de Programação

Programação · FGV · 2025

Questão comentada de Programação

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); var_dump($c); var_dump($f); var_dump($g); var_dump($i); ?> </pre> </body> </html> Ao executar o código em um navegador, as saídas são respectivamente

Gabarito: C

Em PHP, o tipo pode ser convertido com cast explícito, como em (int), (float), (bool) e (string). O ponto principal aqui é que o valor original pode mudar de tipo sem mudar de “conteúdo visível”: 5.34 vira 5 ao ser convertido para inteiro, e 0 vira 0.0 ao ser convertido para float. O var_dump mostra exatamente o tipo e o valor depois da conversão, então ele é ótimo para pegar essas pegadinhas de concurso. Vamos aos casos: $b = (int) 5.34 resulta em int(5), porque a parte decimal é descartada. $c = (float) 0 continua com valor 0, mas agora aparece como float(0). Já $f = (bool) "hello" vira bool(true), porque, em PHP, qualquer string não vazia é verdadeira. $g = (string) "" permanece string(0) "", isto é, string vazia. Por fim, $i = (bool) NULL vira bool(false), pois NULL é falso em contexto booleano. Esse comportamento segue a conversão de tipos da linguagem PHP, tradicionalmente tratada na documentação oficial da linguagem e muito cobrada em provas da FGV. A banca gosta de misturar valor e tipo: você olha e pensa “é zero, então é int”, mas o cast já mudou para float; ou vê string vazia e esquece que null em booleano vale false. Aqui, portanto, a sequência correta é int(5), float(0), bool(true), string(0) "", bool(false).

Continue treinando

Questões relacionadas