quarta-feira, 1 de agosto de 2007

Tipos de Dados

Neste post, irei falar um pouco sobre tipagem de dados em PHP, de forma que o leitor possa ter uma visão geral de como funciona na linguagem.

Exemplo 1 - Tipos de Dados Básicos
Comentários:

Levando em consideração a instalação feita a partir do segundo post deste Blog, vamos criar uma pasta com o nome "tipo_dados" dentro do diretório c:\webroot. Dentro desta pasta salvamos este primeiro exemplo, com o nome "exemplo1.php". Desta forma, o caminho completo do arquivo é "c:\webroot\tipo_dados\exemplo1.php".

Para acessar o arquivo através de um navegador, digite no mesmo a seguinte URL: http://localhost/tipo_dados/exemplo1.php .

Bem, agora vamos ao que importa saber deste exemplo. Primeiro, no PHP, não há necessidade de se declarar variável. O tipagem é feita em tempo de execução. Além disso, por ser uma linguagem fracamente tipada, não há a necessidade de conversão entre os tipos de dados nas operações que são feitas ao longo de seu programa. Podemos, por exemplo, somar uma string com um número inteiro e o resultado poderá ser um booleano.

De início, isso pode assustar um pouco. Mas o que acontece é que o interpretador PHP verifica a operação e faz as conversões de forma automática. Isso quer dizer que se estivermos somando duas variáveis, elas necessariamente devem ser de um tipo númerico. Portanto, antes de executar a operação, o PHP transforma estas variáveis para o tipo númerico.

De posse desta informação, algumas transformações devem ser percebidas pelo programador. Por exemplo, algumas regras para transformação de variáveis para o tipo booleano são consideradas no PHP. O inteiro 0(zero), o Float (0.0), string vazia ("") ou a string "0", são automaticamente reconhecidas como false. Outras valores são encarados como true.

Por padrão, o PHP possui 4 tipos básicos de acordo com nosso exemplo: String, Inteiro, Flutuante e Booleano. Existem outros tipo básicos que comentaremos ao longo dos post mais avançados do Blog. Mas para inicio de conversa isso basta.

Outra dica: às vezes abrimos o código PHP simplesmente para imprimir o conteúdo de uma variável. Quando isto ocorrer, podemos usar a seguinte tag"<?= ?>". Este sinal de igual (que deve ser colado na interrogação) serve para imprimir o valor de uma expressão apenas. Ou seja, caso seja necessário imprimir uma variável ou expressão, podemos usar este tipo de abordagem.

Vamos aos poucos também comentando sobre o HTML e suas tags. No exemplo acima, temos uma tabela com borda 1. A tag <TABLE> permite a criação de uma tabela. A tag <TR> cria uma linha dentro da tabela. <TH> e <TD> criam colunas sendo que <TH> é uma coluna de cabeçalho e <TD> uma coluna normal.


Exemplo 2 - Tipos de Dados Vetor

Comentários:

Levando em consideração a instalação feita a partir do segundo post deste Blog, vamos criar uma pasta com o nome "sintaxe_basica" dentro do diretório c:\webroot. Dentro desta pasta salvamos este exemplo, com o nome "exemplo2.php". Desta forma, o caminho completo do arquivo é "c:\webroot\tipo_dados\exemplo2.php".

Para acessar o arquivo através de um navegador, digite no mesmo a seguinte URL: http://localhost/tipo_dados/exemplo2.php .

Neste exemplo, vamos perceber como é simples trabalhar com vetores em PHP. Vetores nada mais são do que estruturas hash (chave, valor). Não há a necessidade de se criar vetores ordenados nem iniciando de algum valor, como o ZERO por exemplo. A ordem de criação dos elementos do vetor é a tomada como base para identificar a ordem dos elementos.

O vetor acima possui 5 elementos. Este exemplo mostra as duas maneiras que temos de se criar vetor. A primeira é atribuindo a uma variável indexada um valor (linha 3). A partir deste momento, já se tem um vetor criado em memória cujo índice é 10 e valor "Curso PHP". A pergunta é: ao se criar este primeiro elemento, quantos elementos tem o meu vetor? Muita gente poderia imaginar a resposta como sendo 11, considerando o início do vetor do zero, sendo que apenas o vetor de índice 10 estaria preenchido. Mas não! Como dito anteriormente, estruturas de vetor não seguem uma ordem pré-definida. A ordem de criação é que conta. Portanto, considerando apenas a linha 3, o vetor tem apenas 1 elemento.

Isso vale até a finalização do vetor. O segundo elemento criado (linha 4 ), possui como índice o número 4. Porém, o primeiro elemento do vetor continua sendo o de índice 10, mesmo que este índice seja superior ao índice 4. Batemos mais uma vez nesta tecla: a ordem de criação é a ordem interna do vetor.

Outra informação útil de se saber, é que os índices de um vetor não precisam ser necessariamente numéricos (linha 5). Eles podem variar, dentro de um mesmo vetor, entre números e strings nas chaves. Vale ressaltar que não há um número associado ao índice no formato String. No caso da linha 5, o índice é "altura" e pronto.

Outra dica é quando criamos um vetor sem especificar o índice do mesmo (linha 6). Um índice numérico é criado automaticamente. A regra para criação do índice é a seguinte: último número inteiro já criado anteriormente mais 1. Caso não tenha sido criado nenhum índice numérico anteriormente, o índice ZERO é atribuído ao elemento do vetor. Em nosso exemplo, qual seria o índice do elemento da linha 6? A resposta é 5.

A segunda maneira de se criar um vetor é usando o construtor de linguagem (language constructor) "array". Nele você coloca o indice e valor, separados por vírgula. A associação entre índice e valor é feito pelo operador "=>". Caso não se coloque o operador, estaremos criando o elemento apenas e o índice é dinâmico seguindo a regra mencionada anteriormente.

Por fim, usamos a função print_r para imprimir na tela todo o conteúdo do vetor, incluindo seus índices. Função boa para depurar o par índice/valor de um vetor.

 

Para saber mais sobre Tipos de Dados, acesse o manual do PHP.

Para fazer o download dos arquivos deste post, clique aqui.

No próximo post falaremos sobre as estruturas de controle em PHP.

0 comentários: