PHP
Introdução ao PHP – Parte 2
Tipos de Dados e arrays
Ewald Geschwinde e Hans-Juergen Schoenig
Nas seções anteriores, nós já vimos que o PHP suporta variáveis, mas por enquanto só aprendemos a utilizar números e seqüências. Como estruturas de controle, os tipos de dados são um componente fundamental de toda linguagem de programação.
Tal como a maior parte das linguagens de alto nível, o PHP trabalha normalmente sem tipos de dados e tenta reconhecer o tipo de dado de uma variável por conta própria. Contudo, o PHP fornece um conjunto de tipos de dados diferentes, como mostrado na Tabela 1. Nesta seção, aprenderemos a utilizar estes tipos de dados eficientemente.
Tipo de dado |
Descrição |
Int, Integer |
Numéricos, valores sem virgule |
Double, real |
Numéricos de ponto flutuante |
String |
Seqüência de caracteres |
Array |
Conjunto de valores |
Object |
Tipo de dado artificial, definido pelo usuário |
Tabela 1. Tipos de dados no PHP
Variáveis e nomes
Como já vimos nos exemplos discutidos nas seções anteriores, as variáveis em PHP são marcadas com o caractere ”$”. Diferentemente do Perl, o PHP marca todas as variáveis com um caractere “$” e não usa os caracteres “@” e “%” como símbolos.
Em PHP, os nomes de variáveis são sensitivas, o que significa que faz diferença se o nome é escrito com caracteres minúsculos ou maiúsculos. O nome de uma variável pode iniciar com um caractere de “a” a “z” ou com o caractere “_' (“underscore”). Depois do primeiro caractere, todas as demais letras e números, assim como o caractere “_” serão permitidos. Contudo, recomendo fortemente utilizar só letras no nome da variável, pois caso contrário, os programas ficarão confusos e difíceis de entender, sobretudo quando se misturam letras maiúsculas e minúsculas em nomes de variáveis. O exemplo a seguir, mostra que $a não será interpretado como $A:
<?php
$a = "Eu sou uma seqüência.";
$A = "Eu também sou uma seqüência.";
echo "a: $a; A: $A<br>\n";
?>
Como podemos ver no resultado, as duas frases não representam a mesma variável.
Reconhecimento automático de tipo de dados
Quando uma variável é processada pelo PHP, o interpretador segue algumas regras pré-estabelecidas para reconhecer que tipo de dado uma variável pertence:
?Se uma seqüência de caracteres inicia e termina com aspas simples, será tratada como um literal do tipo string: $a = ‘abc’ - atribui a seqüência “abc” a $a, pois a seqüência está entre aspas simples;
?Se um número não contiver um ponto decimal, é tratado como um valor inteiro: $a = 23, indica que o número inteiro 23 será atribuído a $a. O valor 23 é um valor inteiro porque não contém nenhum ponto decimal;
?Se um número contiver um ponto decimal, será tratado como um número de ponto flutuante: $a = 3.14159 faz com que o PHP atribua um valor ponto flutuante a $a;
O conhecimento dessas três regras torna fácil a previsão do resultado de uma operação e facilita a escrita de aplicações sem erros de codificação.
Verificação de tipos de dados e formatação explícita
Às vezes é necessário modificar explicitamente o tipo de dado de uma variável. Embora o PHP faça internamente a formatação de tipos em alguns casos poderia ajudar, caso seja necessário que uma variável seja atribuída com determinado tipo de dado. Para executar operações assim, o PHP fornece as funções necessárias. Antes de aprendermos sobre essas funções, veremos como podemos descobrir o tipo de dado de uma variável na Listagem 1.
Listagem 1. Verificando o tipo de uma variável
<?php
$a = 3.14159;
$b = 12;
$c = "Eu sou uma seqüência.";
$d = array(1, 2, 3);
echo '$a is a '.gettype($a)." value<br>\n";
echo '$b is an '.gettype($b)." value<br>\n";
echo '$c is a '.gettype($c)." value<br>\n";
echo '$d is an '.gettype($d)." value<br>\n";
?>
Com o auxílio da função chamada gettype, é possível recuperar facilmente o tipo de dado de uma variável. Se utilizarmos as regras descritas na seção anterior, será fácil prever o resultado do script:
$a is a double value
$b is an integer value
$c is a string value
$d is an array value
O primeiro valor é um valor ponto flutuante porque contém uma vírgula. O segundo é um valor inteiro porque não contém uma vírgula. O terceiro está entre aspas e por isso é tratado como um string. O último valor é um array, pois a expressão no lado direito do caractere “=”, retorna um array de valores inteiros.
Outro modo de verificar o tipo de dado de uma variável seria utilizar a função específica de tipo de dados como mostrado na Listagem 2.
Listagem 2. Outra forma de verificar um tipo de dado de uma variável
<?php
$a = 3.14159;
$b = 12;
$c = "Eu sou uma seqüência.";
$d = array(1, 2, 3);
echo '$a: '.is_double($a)."<br>\n";
echo '$b: '.is_integer($b)."<br>\n";
echo '$c: '.is_string($c)."<br>\n";
" [...] continue lendo...