Introdução

Cada expressão no PHP tem um dos seguintes tipos ou valores internos:

O PHP é uma linguagem com tipagem dinâmica, o que significa que por padrão não existe a necessidade de especificar o tipo de uma variável, já que isso será determinado em tempo de execução. Entretanto, é possível de restringir estaticamente os tipos através do uso de declarações de tipo.

Os tipos restringem quais operações podem ser realizadas nos valores. Entretanto, se uma expressão ou variável for utilizada numa operação que o tipo não suporte, o PHP tentará transformar o valor em um tipo que suporte a operação. Esse processo depende do contexto de onde o valor é utilizado. Para mais informações, veja a seção sobre Transformações de tipos.

Dica

A tabela de comparação de tipos também pode ser útil, pelos vários exemplos de comparação de valores demonstrados.

Nota: É possível forçar a reavaliação de uma expressão para um tipo específico através do uso de cast. Uma variável pode ser modificada para um tipo através da função settype().

Para verificar o valor e tipo de uma expressão, utilize a funçãovar_dump(). Para extrair o tipo de uma expressão, utilize a funçãoget_debug_type(). Para apenas validar se uma expressão é de um certo tipo, utilize as funções is_type.

<?php
$a_bool
= true; // um valor boleano
$a_str = "foo"; // um texto
$a_str2 = 'foo'; // um texto
$an_int = 12; // um inteiro

echo get_debug_type($a_bool), "\n";
echo
get_debug_type($a_str), "\n";

// Se essa variável conter um inteiro, aumento o número por quatro
if (is_int($an_int)) {
$an_int += 4;
}
var_dump($an_int);

// Se $a_bool for um texto, imprima
if (is_string($a_bool)) {
echo
"String: $a_bool";
}
?>

Saída do exemplo acima no PHP 8:

bool
string
int(16)

Nota: get_debug_type() se tornou disponível no PHP 8.0.0. Anteriormente, a função gettype() pode ser utilizada. Entretanto, a função antiga não retorna nomes bem definidos.

add a note add a note

User Contributed Notes 1 note

up
0
kuzawinski dot marcin_NOSPAM at gmail dot com
4 years ago
No, despite description here a `callable` still is not a a full-fledged primitive type in PHP.

<?php

function testFunc() { }

class
testClass {
   
    public function
__invole() { }
   
    public static function
testStaticMethod() { }
   
    public function
testMethod() { }
}

$o = new testClass();
$lambda = function() { };

$c1 = 'testFunc';
$c2 = ['testClass', 'testStaticMethod'];
$c3 = [$o, 'testMethod'];
$c4 = $lambda;
$c5 = $o;

var_dump(is_callable($c1));  // TRUE
var_dump(is_callable($c2));  // TRUE
var_dump(is_callable($c3));  // TRUE
var_dump(is_callable($c4));  // TRUE
var_dump(is_callable($c5));  // TRUE

var_dump(gettype($c1)); // string(6) "string"
var_dump(gettype($c2)); // string(5) "array"
var_dump(gettype($c3)); // string(5) "array"
var_dump(gettype($c4)); // string(6) "object"
var_dump(gettype($c5)); // string(6) "object"

?>
To Top