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

  1. Checando tipo de dado
  2. Manipulando tipo de dado
  3. Checando e destruindo variável
  4. Imprimindo dados para debug
  5. serialize
  6. unserialize
  7. strval
  8. get_debug_type
  9. get_class
  10. method_exists

Como a linguagem PHP possui inferência de dados em momentos de compilação, é necessário em algum momento de nossos programas em PHP identificar qual o tipo de dado está contido em nossas variáveis, exibir informações de variáveis e outros.

A checagem de tidos de dados é feita utilizando as funções nativas da linguagem PHP como is_bool, is_float entre outras.

Variáveis e constantes foram vistos em PHP Básico: Variáveis, Constantes e Escopo. Casting e juggling podem ser vistos em PHP Básico: Casting e Juggling.

Para verificarmos o tipo de dado de uma variável, utilizamos as funções nativas descritas abaixo. Todas retornam um valor true(1) se for um determinado tipo e false(0) caso contrário.

Tab. 1: funções para checagem de tipo
Função Checagem de tipo
is_bool boolean
is_array vetor, matriz
is_callable função
is_countable vetor ou semelhante
is_double ponto-flutuante
is_float ponto-flutuante
is_integer integer
is_scalar boolean, integer, float e string
is_string string
is_long -
is_null valor nulo
is_resource
is_iterable array e semelhantes
Sintaxe
nome_funcao($nome_variavel)
Onde
-
Exemplo 1
//main.php
<?php
 $val=false;
 echo is_bool($val);
 echo " ";

 $val=1.99;
 echo is_double($val);
 echo " ";

 $val=1.99;
 echo is_float($val);
 echo " ";

 $val=99;
 echo is_int($val);
 echo " ";
 
 $val=777;
 echo is_integer($val);
 echo " ";
 
 $val=777;
 echo is_scalar($val);
 echo " ";

 $val="false";
 echo is_float($val);
 echo " ";

 $val=1000;
 echo is_long($val);
 echo " ";

 $var = null;
 echo is_null($var);
 echo " ";

 $var = "123";
 echo is_numeric($var);

?>
Saída
1 1 1 1 1 1  1 1 1

PHP possui as funções gettype e settype para manipulação e obter informação do tipo de dado de uma variável. A primeira função retorna o tipo de dado e a segunda é utilizada para definir o tipo de dado.

Sintaxe
settype(mixed $value, string $type): bool

gettype(mixed $value): string
Onde
$value: variável para recuperar tipo de dado
$type: tipo de dado para a qual $value será alterado. O possíveis valores para $type estão listados abaixo:
"boolean" 
"bool" : PHP >= 4.2
"integer" 
"int": PHP >= 4.2
"float" : PHP >= 4.2
"double": PHP < 4.2 - depreciado 
"string"
"array"
"object"
"null": PHP >= 4.2
Exemplo 2
//main.php
<?php
	$teste = "true";
	echo gettype($teste);
?>
Saída
string
Exemplo 3
//main.php
<?php
  $teste = "5";
  echo gettype($teste);
  settype($teste,"integer");
  echo "\n";
  echo gettype($teste);
?>
Saída
string
interger

PHP possui as funções isset e unset para manipular o conteúdo de uma variável. A primeira função checa se existe valor e é dirente de null. A segunda função remove um valor atribuído e destrói a variável.

Sintaxe
unset(mixed $value):void

isset(mixed $value): bool
Onde
$value: variável
Exemplo 4
//main.php
<?php
	$teste = "true";
	echo isset($teste);
?>
Saída
1
Exemplo 5
//main.php
<?php
  $teste = "5";
  unset($teste); //variável destruída
  //echo $teste;//irá gerar erro se executado
?>
Saída
-

As funções print_r e var_dump e var_export podem ser utilizadas para imprimir dados de variáveis para depuração. Cada uma dela possui sua própria formatação de saída e devem ser utiizadas de acordo com a necessidade.

Sintaxe
var_export(mixed $value, bool $return = false): ?string

var_dump(mixed $value, mixed ...$values): void

print_r(mixed $value, bool $return): void
Onde
$value: variável
$values: lista de variáveis separadas por (,)
$return: Booleano para indicar se a informação devem ser exibir ou retornada como string
Exemplo 6
//main.php
<?php
  $x = ["a" => 1]; //array
  print_r($x);

  echo "\n";

  $teste = "7.77";
  $teste2="string";
  var_dump($teste,$teste2);

  echo "\n";
  
  $a = array ("ch1" => 1,"ch2" => 2, "ch3" => 3);
  var_export($a);
?>
Saída
Array
(
    [a] => 1
)

string(4) "7.77"
string(6) "string"

array (
  'ch1' => 1,
  'ch2' => 2,
  'ch3' => 3,
)
  1. 20/08/2025 - revisão 4 - Ajustes: pontuais, objetivos e sintaxes
  2. 21/09/2024 - revisão 3 - Correção em 'Manipulando tipo'/'Checando conteúdo', ajustes gramaticais pontuais e outros
  3. 03/09/2024 - revisão 2 - Correção em links de objetivos
  4. 06/02/2024 - revisão 1 - correção em navegação e erros gramaticais
  5. 20/09/2023 - versão inicial