Objetivos
Casting, Juggling e Typechecking
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.
Casting implícito
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
Juggling de tipos de dados
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
Histórico de atualizações
- 20/08/2025 - revisão 4 - Ajustes: pontuais, objetivos e target de links internos
- 21/09/2024 - revisão 2 - remoção de inferência em 'juggling'; ajustes gramaticais e outros ajustes pontuais
- 05/02/2024 - revisão 1 - correção em navegação e erros gramaticais
- 20/09/2023 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.