Aprender PHP

Assine o RSS

Tipos de dados no PHP

Criado em: 28/02/2010

Introdução aos tipos de dados no PHP

Agora que você já sabe como criar variáveis e constantes no PHP, e sabe exibir os dados no browser iremos nos aprofundar-nos diferentes tipos de dados suportados pelo PHP.

Caso você já tenha programado em outra linguagem como C, deve achar estranho não ser necessário a declaração de uma variável, no PHP basta-lhe atribuir um valor diretamente, pois é decidido em tempo de execução pelo PHP, dependendo do contexto na qual a variável é usada.

Diferentes tipos de dados suportados pelo PHP

O PHP suporta oito tipos de dados primitivos divididos em três grupos:

  1. Quatro tipos básicos, os dados escalares
  2. Dois tipos compostos
    • array
    • object
  3. Dois tipos especiais:

O tipo integer, inteiro, no PHP

Um inteiro é qualquer numero sem decimais, positivou ou negativo. Englobando todos os números do conjunto Z(os números inteiros).

<?php

// Declaração de uma variavel como inteiro
$ano_nascimento = 1989;

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tipo Inteiro no PHP</title>
</head>

<body>
<p>Eu nasci no ano de <?php echo $ano_nascimento; ?></p>
</body>
</html>

O tipo float ou double, número de ponto flutuante, no PHP

Float, Double ou ainda números de ponto flutuante são os números reais.

<?php

// Declaração de uma variavel como float, armazenando o valor de pi
$pi = 3.14159265;

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tipo float, double ou número de ponto flutuante no PHP</title>
</head>

<body>
<p>O valor de pi é <?php echo $pi; ?></p>
</body>
</html>

O tipo string no PHP

Uma string é uma série de caracteres, um texto por exemplo. Para declararmos strings podemos utilizar as aspas simples (apóstrofos) e as aspas duplas.

String com aspas simples (apóstrofos) no PHP

Para definirmos uma string com aspas simples basta delimitarmos o texto com aspas simples (').

<?php

// Declaração de uma variavel com string com aspas simples
$texto = 'O PHP é uma linguagem server-side.';

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>String com aspas simples no PHP</title>
</head>

<body>
<p><?php echo $texto; ?></p>
</body>
</html>

Agora uma pergunta. E se eu quiser definir uma aspa simples no meu texto o que farei? Já que as aspas simples são os delimitadores de string. Veja o exemplo do que acontece se eu apenas inserir uma aspa simples no meio da minha string.

<?php

// Declaração de uma variavel com string com aspas simples
$texto = 'Ele comprou uma pizza no Joey's.';

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>String com aspas simples no PHP</title>
</head>

<body>
<p><?php echo $texto; ?></p>
</body>
</html>

Sim! Como você deve ter imaginado foi gerado um erro já que a aspa simples é o delimitador de string. Para especificar uma aspa simples (apóstrofo) no meio de uma string você precisará "escapá-la" com uma contra barra (\) veja a seguir.

<?php

// Declaração de uma variavel com string com aspas simples
$texto = 'Ele comprou uma pizza no Joey\'s.';

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>String com aspas simples no PHP</title>
</head>

<body>
<p><?php echo $texto; ?></p>
</body>
</html>

String com aspas duplas no PHP

A grande diferença entre as strings declaradas com aspas simples e as declaradas com aspas duplas está no fato de que as strings declaradas com aspas duplas interpretam as variáveis.

<?php
// Declaração de um produto
$produto = 'pizza';
// Declaração de uma variavel com string com aspas duplas
$texto = "Ele \"comprou\" uma $produto no Joey's.";

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>String com aspas duplas no PHP</title>
</head>

<body>
<p><?php echo $texto; ?></p>
</body>
</html>

Observe que a variável $produto foi interpretada dentro da string declarada na variável $texto. Coisa que não ocorre nas variáveis declaradas com aspas simples. Veja o exemplo a seguir:

<?php
// Declaração de um produto
$produto = 'pizza';
// Declaração de uma variavel com string com aspas duplas
$texto = 'Ele comprou uma $produto no Joey\'s.';

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>String com aspas duplas no PHP</title>
</head>

<body>
<p><?php echo $texto; ?></p>
</body>
</html>

Assim como tivemos que inserir uma contra barra (\) para declarar uma aspa simples quando declaramos uma string entre aspas simples devemos utilizar o mesmo caractere de escape, contra barra (\), para podemos inserir as aspas duplas dentro de uma string declarada com aspas duplas.

Outra grande diferença entre as aspas simples e as aspas duplas é que temos uma sequência de caracteres de controle que podem ser inserido em nossa string, veja a tabela a seguir:

Seqüência Significado
\n fim de linha
\r retorno de carro(carriage return)
\t TAB horizontal
\v TAB vertical
\f form feed
\\ contra barra ou barra invertida
\$ sinal de cifrão
\" Aspas

Não fique preocupado em ter que decorar todas as seqüências de caracteres de controle, pois a tabela estará aqui para quando você precisar tirar uma duvida e a medida de sua necessidade você a ira decorando com o passar do tempo. Veja um exemplo a seguir de alguns caracteres de controle em seguida uma explicação sobre o exemplo:

<?php
// Declaração de uma string com aspas simples mo PHP
$texto = 'Ele comprou uma
 pizza no Joey\'s e custou R$ 30,00 reais';

// Declaração de uma string com aspas duplas mo PHP
$texto2 = "Ele comprou uma \n pizza no Joey's e custou R$ 30,00 reais";

// Declaração de uma string com aspas duplas mo PHP, e utilizando a contra barra para escapar o $
$texto3 = "Você se lembra que existia aqui uma variavel de nome \$produto?";

// Repare que não precisei escapar a contra barra
$texto4 = "Não preciso escapar a \ ?";

// Aqui eu preciso
$texto5 = "O texto termina com \\";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>String com aspas duplas no PHP</title>
</head>

<body>
<p><?php echo $texto; ?></p>
<p><?php echo $texto2; ?></p>
<p><?php echo $texto3; ?></p>
<p><?php echo $texto4; ?></p>
<p><?php echo $texto5; ?></p>
</body>
</html>

Para visualizar o primeiro exemplo abra o código fonte da página no seu browser e observe que os dois primeiros parágrafos apesar de idênticos um foi declarado como string com aspas simples e o outro com aspas duplas. No que foi declarado com aspas duplas repare que utilizamos o caractere de controle \n para quebra linha enquanto no outro utilizamos uma quebra de linha no próprio código fonte, é um exemplo apenas para ilustrar o funcionamento do caractere de controle \n.

Você deve esta se perguntando como eu pude escrever o sinal de $, nas variáveis $texto e $texto2, normalmente se eu necessito utilizar o caractere de controle. A resposta é que não a nenhum caractere seguido dele. Na variável $texto3 como a texto seguido do $ aí sim eu deve utilizar o caractere de controle.

Algo parecido ocorre com a contra barra observe que na variável $texto4 eu não precisei escapar a contra barra, a contra barra só precisa ser escapa no final da string assim como foi declarado na variável $texto5.

Caso já tenha pego algum script pela internet em PHP, talvez já tenha se deparado com \r\n para finalizar a linha, ou apenas \n no entanto não o faça. Prefira a constante do próprio PHP, PHP_EOL. Pois seu objetivo é exatamente este criar uma nova linha(new line) cross-plataforma assim você não precisa se preocupar como é que é pra criar uma linha no Windows ou no Linux.

Não se esqueça que a sequência de caracteres de controle (escape) só é interpretada pelas strings declaradas com aspas duplas, e que as variáveis também só são interpretadas em strings declaradas com aspas duplas.

Caso você esteja sentindo falta da sintaxe Heredoc não se preocupe ela será abordada mais a frente, como o objetivo é um passo a passo a idéia é você ir se acostumando com as sintaxes aqui apresentadas e mais pra frente alguns assuntos terão que ser retomados. Assim você não sofrerá com uma grande quantidade de informação e pouco tempo de absorção.

O tipo boolean, booleano, no PHP

O tipo booleano é muito simples pois aceita apenas os valores verdadeiro(TRUE) ou falso(FALSE).

<?php
// Declaração de uma variável booleana com o valor verdadeiro
$sim = TRUE;
// Declaração de uma variável booleana com o valor falso
$nao = FALSE;

?>

Você deve ter reparado que não exibimos valores na tela, isto porque o tipo booleano expressa um valor verdade (verdadeiro ou falso). Quando chegarmos às estruturas de controle aí sim o valor booleano fará muito mais sentido.

O tipo booleano é case-insensitive, ou seja, não diferencia maiúsculas de minúsculas. Isto é true, TrUe e TRUE são iguais assim como false, FaLsE e FALSE são iguais.
No entanto prefira sempre utilizar: TRUE e FALSE ou true e false.

O tipo NULL no PHP

Outro tipo de dado muito simples, o valor especial NULL, representa que a variável não tem valor. NULL é o único valor possível do tipo NULL.

<?php
// Declaração de uma variável NULL
$nulo = NULL;

?>

O tipo NULL é case-insensitive, assim como o tipo booleano , ou seja, não diferencia maiúsculas de minúsculas. Isto é null, NulL e NULL são iguais.
No entanto prefira sempre utilizar: NULL ou null.

Você deve ter reparado que não falamos dos tipos compostos (array e object) e do tipo especial resource. Isso porque como a proposta de aprendizado é orientada a PHP e algoritmos não a sentido me aprofundar nestes tipos de dados se você ainda não sabe os operadores e as estruturas de controle, pois iria lhe confundir mais.
Após falarmos sobre estruturas de controle retornaremos ao tipo array.

Comentários

comments powered by Disqus