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:
- Quatro tipos básicos, os dados escalares
- Dois tipos compostos
- array
- object
- Dois tipos especiais:
- resource
- NULL
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.