Nesta aula, vamos mergulhar nos tipos de dados disponíveis em PHP. Entender os tipos é fundamental para escrever código correto e eficiente. Veremos os tipos escalares, o tipo null, como fazer conversão de tipos (casting) e como inspecionar variáveis com var_dump e gettype.

Escalares (int, float, string, bool)

Os tipos escalares representam um único valor. Em PHP, os principais são:

  • int: números inteiros (ex: 42, -3, 0).
  • float: números de ponto flutuante (ex: 3.14, -0.5, 2.0).
  • string: sequências de caracteres (ex: "Olá", 'PHP').
  • bool: valores lógicos true ou false.

Exemplo de declaração:

<?php
$idade = 25;        // int
$preco = 19.99;     // float
$nome = "Maria";    // string
$ativo = true;      // bool
?>

Null

O tipo null representa uma variável sem valor. Uma variável é null se:

  • Foi atribuído o valor null diretamente.
  • Ainda não foi inicializada.
  • Foi destruída com unset().

Exemplo:

<?php
$valor = null;
var_dump($valor); // imprime: NULL
?>

Conversão (casting)

PHP é uma linguagem de tipagem dinâmica, mas podemos forçar a conversão de um tipo para outro usando casting. Os casts disponíveis são:

  • (int) ou (integer)
  • (float) ou (double) ou (real)
  • (string)
  • (bool) ou (boolean)
  • (array), (object), etc.

Exemplo:

<?php
$numero = "123";
$inteiro = (int) $numero; // 123 (int)
$float = (float) "45.67"; // 45.67 (float)
$bool = (bool) "";        // false (string vazia vira false)
?>

Regras comuns de conversão:

  • Strings numéricas são convertidas para int/float.
  • Strings não numéricas viram 0.
  • 0, null, '' e array vazio viram false; outros valores viram true.

var_dump e gettype

Para inspecionar o tipo e valor de uma variável, usamos:

  • var_dump($var): exibe o tipo e o valor (e para arrays/objetos, mostra a estrutura).
  • gettype($var): retorna uma string com o nome do tipo.

Exemplo:

<?php
$valor = 3.14;
echo gettype($valor); // imprime: double
var_dump($valor);     // imprime: float(3.14)
?>

Referências

Exercícios

  1. Crie uma variável com o valor "123.45" (string) e converta-a para float. Em seguida, exiba o tipo usando gettype.

    <?php
    $str = "123.45";
    $num = (float) $str;
    echo gettype($num); // double
    ?>
  2. Declare uma variável sem atribuir valor e outra com valor null. Use var_dump para exibir ambas.

    <?php
    $var1;          // não inicializada
    $var2 = null;
    var_dump($var1); // NULL
    var_dump($var2); // NULL
    ?>
  3. Qual é o resultado da expressão (bool) "false"? Explique.

    O resultado é true, pois a string "false" não é vazia. Apenas strings vazias ou "0" são convertidas para false.

  4. Escreva um código que some um inteiro (10) com uma string ("5") e exiba o tipo do resultado.

    <?php
    $a = 10;
    $b = "5";
    $soma = $a + $b;
    var_dump($soma); // int(15)
    ?>
  5. Use var_dump para exibir o valor e tipo de null, true, 0 e "0".

    <?php
    var_dump(null);  // NULL
    var_dump(true);  // bool(true)
    var_dump(0);     // int(0)
    var_dump("0");   // string(1) "0"
    ?>