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
- 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).
04 | $ano_nascimento = 1989 ; |
10 | < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> |
11 | < title >Tipo Inteiro no PHP</ title > |
15 | < p >Eu nasci no ano de <? php echo $ano_nascimento ; ?> </ p > |
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.
10 | < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> |
11 | < title >Tipo float, double ou número de ponto flutuante no PHP</ title > |
15 | < p >O valor de pi é <? php echo $pi ; ?> </ p > |
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 ('
).
04 | $texto = 'O PHP é uma linguagem server-side.' ; |
10 | < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> |
11 | < title >String com aspas simples no PHP</ title > |
15 | < p > <? php echo $texto ; ?> </ p > |
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.
04 | $texto = 'Ele comprou uma pizza no Joey' s.'; |
10 | < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> |
11 | < title >String com aspas simples no PHP</ title > |
15 | < p > <? php echo $texto ; ?> </ p > |
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.
04 | $texto = 'Ele comprou uma pizza no Joey\'s.' ; |
10 | < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> |
11 | < title >String com aspas simples no PHP</ title > |
15 | < p > <? php echo $texto ; ?> </ p > |
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.
05 | $texto = "Ele \"comprou\" uma $produto no Joey's." ; |
11 | < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> |
12 | < title >String com aspas duplas no PHP</ title > |
16 | < p > <? php echo $texto ; ?> </ p > |
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:
05 | $texto = 'Ele comprou uma $produto no Joey\'s.' ; |
11 | < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> |
12 | < title >String com aspas duplas no PHP</ title > |
16 | < p > <? php echo $texto ; ?> </ p > |
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:
03 | $texto = 'Ele comprou uma |
04 | pizza no Joey\ 's e custou R$ 30,00 reais' ; |
07 | $texto2 = "Ele comprou uma \n pizza no Joey's e custou R$ 30,00 reais" ; |
10 | $texto3 = "Você se lembra que existia aqui uma variavel de nome \$produto?" ; |
13 | $texto4 = "Não preciso escapar a \ ?" ; |
16 | $texto5 = "O texto termina com \\" ; |
21 | < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> |
22 | < title >String com aspas duplas no PHP</ title > |
26 | < p > <? php echo $texto ; ?> </ p > |
27 | < p > <? php echo $texto2 ; ?> </ p > |
28 | < p > <? php echo $texto3 ; ?> </ p > |
29 | < p > <? php echo $texto4 ; ?> </ p > |
30 | < p > <? php echo $texto5 ; ?> </ p > |
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
).
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
.
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.