Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Casting implícito
  2. Casting explícito
  3. Perda de dados
  4. Entender juggling
  5. Exemplos de casting

A linguagem PHP nos permite realizar a casting de dados e também o juggling de tipos. Nesta parte do tutorial vamos ver esses dois assuntos.

Nos exemplos abaixo vamos utilizar o comando de decisão if que pode ser visto em PHP Básico: Comandos e também os operadores aritméticos e comparação/relacionais que podem ser vistos em PHP Básico: Operadores.

No casting conversão implícito, a conversão de tipos de dados é feita de forma automática pela linguagem PHP sem a necessidade de intervenção.

Exemplo 1
//main.php
<?php
  $teste = 3.0/2; //float
  echo $teste;
?>
Saída
1.5

No casting explícito, precisamos informar a linguagem PHP o tipo de dado que desejamos. Nesse tipo de casting pode haver perda de dados e é feita de acordo com a sintaxe abaixo:

Sintaxe : casting
$nome_variavel = (tipo_dado_cast) expressao|valor;
Exemplo 2
//main.php
<?php
  $valor = 3.0/2; //1.5
  $inteiro = (int)$valor; //parte inteira
  $dig = $valor - $inteiro; //0.5
  echo $inteiro;
  echo "\n";
  echo $dig;
?>
Saída
1
0.5

A linguagem PHP possui o característica de Juggling de tipos que consiste na conversão de tipos de dados para um formato adequado para a operação:

Exemplo 4
//main.php
<?php
    $variavel = 100;
    if($variavel == "100") {
       echo "juggling";
    }
?>
Saída
-

O juggling em PHP também funciona com os operadores aritméticos como pode ser visto no exemplo abaixo:

Exemplo 5
//main.php
<?php
    $variavel = 100;
    if($variavel == "100") {
       echo "juggling";
    }
    echo " ";
    echo 1 + ".99";
    
    echo " ";
    echo "2" - "1";
?>
Saída
juggling 1.99 1

Para melhor compreensão de casting, o exemplo abaixo contém vários exemplos de casting como Integer, String, Float , Vetor e outros.

Exemplo 6
//main.php
<?php
echo (int)1.99; //float > integer

echo " "; //espaço em branco
echo (float)999; //integer > float

echo " ";
echo (int)"100"; //string > integer

echo " ";
echo (int)false; //boolean > integer

echo " ";
echo (boolean)1; //integer > boolean

echo " ";
echo (String)true; // boolean > string

echo " ";
echo (String)1.99; // float > string

echo " ";
echo (String)999; // int > string
?>
Saída
1 999 100 0 1 1 1.99 999

  1. 20/08/2025 - revisão 4 - Ajustes: pontuais, objetivos e target de links internos
  2. 21/09/2024 - revisão 2 - remoção de inferência em 'juggling'; ajustes gramaticais e outros ajustes pontuais
  3. 05/02/2024 - revisão 1 - correção em navegação e erros gramaticais
  4. 20/09/2023 - versão inicial