Estruturas de controle ajudam na tomada de decisão frente a alguma pergunta que pode ter mais de uma resposta.
Ao invés de ficar escrevendo sobre o que é ou não, vamos trabalhar com exemplos, assim a gente já vai aprendendo a usar e entendendo ao mesmo tempo...
Declaração condicional "IF" ... se isso faça X senão faça Y
Por exemplo: Como escrevo numeros de 1 a 3 por extenso?
Coloque o codigo em vermelho em um arquivo.PHP e faça o teste, os comentários são auto-explicativos.
<html>
<body>
<?php
//Utilizando a cláusula "IF"
//Escrevendo numeros de 1 a 3.. troque o valor da variável e veja o que acontece.
$numero = 2;
if($numero == 1) //Se $numero for igual a 1..
{
echo("Um"); //Imprima palavra "Um"
}
else if ($numero == 2) //Se $numero for igual a 2..
{
echo("Dois"); //Imprima palavra "Dois"
}
else if ($numero == 3) //Se $numero for igual a 3..
{
echo("Três"); //Imprima palavra "Três"
}
else //Senão...
{
echo("Número não identificado"); //Imprima que não identificou o numero
}
?>
</body>
</html>
Outra estrutura de controle muito utilizada também é o SWITCH que funciona como um "chaveador" dependendo do valor da variável.
Como o SWITCH verifica todas as possibilidades, precisamos dar um BREAK; no final da possibilidade correta para que o programa possa sair fora do SWITCH, senão ele executará todas as possibilidades em série.
Vamos ao exemplo para entender melhor...
Copie e cole o código abaixo, em vermelho; em um arquivo.PHP e rode para ver o resultado...
<html>
<body>
<?php
//Utilizando o SWITCH
//Vamos utilizar o mesmo exemplo de escrever o nome dos numeros utilizado no exemplo de IF
//Troque o valor que inicializa a variável e confira os resultados..
$numero = 3; //Variavel de controle inicializada
switch($numero) //Variávelde controle dentro do switch
{
case 1: //Variável contém o valor 1?
echo "Número Um"; //Se sim.. imprime o nome do numero...
break; // Para de efetuar verificões e sai do laço
case 2: //Variável contém o valor 2?
echo "Número Dois"; //Se sim.. imprime o nome do numero...
break; // Para de efetuar verificões e sai do laço
case 3: //Variável contém o valor 3?
echo "Número Três"; //Se sim.. imprime o nome do numero...
break; // Para de efetuar verificões e sai do laço
default: //Se não achar nenhum valor correspondente, entra nesta opção
echo "Número não encontrado!!"; //Imprime que não foi encontrado e sai do laço.
//Note que não precisamos do break; aqui porque já é a ultima opção e não verificará mais nada a partir daqui... então break; não é necessário.
}
?>
</body>
</html>
Estrutura de controle FOR...
Basicamente, o que acontece é.. para um determinado valor Y, execute a operação tantas vezes até que este valor atinja um limite X.
Vamos ao exemplo para entenderem melhor..
Copiar e colar o código abaixo em vermelho em um arquivo.PHP e testar...
<html>
<body>
<?php
//Utilizando o FOR
$x = 20; //Inicializando a variável com o valor que se deseja contar..
for($i=1 ; $i <= $x ; $i++) //Enquanto $i for menor ou igual a $x, execute o comando abaixo e ao término some 1 ao valor de $i
{
echo "$i <br>"; //Imprima o valor de $i e pule uma linha..
}
?>
</body>
</html>
Podemos misturar as estruturas de controle como no exemplo abaixo:
<html>
<body>
<?php
//Utilizando o FOR
$x = 5; //Inicializando a variável com o valor que se deseja contar..
for($i=1 ; $i <= $x ; $i++) //Enquanto $i for menor ou igual a $x, execute o comando abaixo e ao término some 1 ao valor de $i
{
switch($i) //Variávelde controle dentro do switch
{
case 1: //Variável contém o valor 1?
echo "Número Um"; //Se sim.. imprime o nome do numero...
echo "<br>"; //Pulando linha
break; // Para de efetuar verificões e sai do laço
case 2: //Variável contém o valor 2?
echo "Número Dois"; //Se sim.. imprime o nome do numero...
echo "<br>"; //Pulando linha
break; // Para de efetuar verificões e sai do laço
case 3: //Variável contém o valor 3?
echo "Número Três"; //Se sim.. imprime o nome do numero...
echo "<br>"; //Pulando linha
break; // Para de efetuar verificões e sai do laço
default: //Se não achar nenhum valor correspondente, entra nesta opção
echo "Número $i não encontrado!!"; //Imprime que não foi encontrado e sai do laço.
//Note que não precisamos do break; aqui porque já é a ultima opção e não verificará mais nada a partir daqui... então break; não é necessário.
echo "<br>"; //Pulando linha
}
}
?>
</body>
</html>
Agora vamos aprender a estrutura WHILE.. ou enquanto uma situação for verdadeira, execute...
Vamos ao exemplo:
<html>
<body>
<?php
//Utilizando o WHILE
//Altere o valor que estão sendo inicializadas as variáveis e veja o que acontece...
$valor = 2; //Inicializando o $valor com 2
$resultado = 0; //Inicializando o $resultado com 0 (zero)
$limite = 500; //Inicializando o $limite com 500
while($valor < $limite) //Enquanto o $valor for menor que o $limite... execute....
{
$resultado = $valor * $valor; //$valor multiplicado por ele mesmo é armazenado no resultado..
echo "$valor multiplicado por $valor é igual a $resultado <br>"; //imprime o novo resultado e pula linha
$valor = $resultado; //$valor é reiniciado com o conteúdo de $resultado
}
echo "$resultado é maior que $limite e por isso paramos de multiplicar!!"; //Imprime quando ultrapassar o limite..
?>
</body>
</html>
E ficamos por aqui com as estruturas de controle.. façam mudanças no código, usem a imaginação..
Abraço e até a próxima..
segunda-feira, 14 de março de 2011
quinta-feira, 3 de março de 2011
PHP - Parte 3 - Trabalhando com Arrays
O array funciona como uma estrutura com caxinhas onde você pode colocar informações separadas e pode acessar essas informações acessando diretamente a caixinha por um numero. Como se fosse uma lista de informações.
Imagine um trem de carga com 10 vagões, o trem seria o array e os vagões de carga as posições onde podemos colocar algum conteúdo.
Se numerarmos os 10 vagões de 1 a 10 e quiséssemos pegar algum conteúdo do vagão 5, poderíamos ir direto no vagão 5 e pegar, pode reordenar os vagões ou simplesmente olhar o que tem dentro... e basicamente, é assim que um array funciona..
Agora vamos parar com as historinhas e vamos contruir uns arrays para ver como funciona o armazenamento de informação neles...
Vamos supor que tivéssemos uma empresa e precisássemos guardar uma lista de clientes; construiríamos isso da seguinte forma:
$Clientes = array("Anastacio","Ariovaldo","Cleonilda","Luprecio");
Como a gente lê isto?
A gente lê que o array chamado $Clientes tem o Anastacio, Ariovaldo, Cleonilda e Luprecio armazenados como clientes. E cada um quardado em uma posição desta "agenda de clientes".
Anastacio na posição 0, Ariovaldo na posição 1, Cleonilda na posição 2 e Luprecio na posição 3.
Existem duas formas de imprimir esse array.
A mais trabalhosa, que é com o echo(NomeDoArray[PosiçãoDaInformação]) ou com o Print_r(NomeDoArray) que é a menos trabalhosa caso se queira imprimir todo o conteúdo na tela.
O echo é mais recomendado no caso de se querer imprimir apenas uma posição manualmente. Mais para frente veremos estruturas condicionais que ajudam a imprimir só o que se quer.
Vamos utilizar o print_r(); para este exemplo como se segue:
print_r($Clientes);
O resultado deve ser:
Array ( [0] => Anastacio [1] => Ariovaldo [2] => Cleonilda [3] => Luprecio )
Outra forma de se criar um array é escrevendo direto na posição de memória da variável como no exemplo abaixo:
$Animais[0] = "Cachorro";
$Animais[1] = "Gato";
$Animais[2] = "Passaros";
$Animais[3] = "Peixes";
Ao fazer um print_r(); do array Animais, você deverá receber um resultado parecido com o exemplo de $Clientes acima.
Mais uma forma de se criar um array é apontar o conteúdo para a posição relativa interna deste array. É muito parecido com a primeira forma de criar array que escrevi para o exemplo de $Clientes:
$Cores = array(
0 => "Marrom",
1 => "Preto",
2 => "Verde",
3 => "Amarelo"
);
E temos também, arrays multidimensionais.
Uma matriz é um array bidimensional, por exemplo, uma matriz 4X4 teria:
[linha 0, coluna 0][linha 0, coluna 1][linha 0, coluna 2][linha 0, coluna 3]
[linha 1, coluna 0][linha 1, coluna 1][linha 1, coluna 2][linha 1, coluna 3]
[linha 2, coluna 0][linha 2, coluna 1][linha 2, coluna 2][linha 2, coluna 3]
[linha 3, coluna 0][linha 3, coluna 1][linha 3, coluna 2][linha 3, coluna 3]
E como montaríamos isto?
Vamos construir uma matriz onde na primeira linha teremos.. Nome, Idade, Sexo, Animal e nas linhas subsequentes preencheremos de acordo com a primeira linha.
$Matriz = array(
0 => array("Nome","Idade","Sexo","Animal"),
1 => array("Fabio","31","Masculino","Cachorro"),
2 => array("Claudia","20","Feminino","Passaro"),
3 => array("Bruno","3","Masculino","Peixe")
);
Ao imprimir a $Matriz com o print_r(); teremos o seguinte resultado que vou separar em linhas para ficar mais fácil de compreender:
Array (
[0] => Array ( [0] => Nome [1] => Idade [2] => Sexo [3] => Animal )
[1] => Array ( [0] => Fabio [1] => 31 [2] => Masculino [3] => Cachorro )
[2] => Array ( [0] => Claudia [1] => 20 [2] => Feminino [3] => Passaro )
[3] => Array ( [0] => Bruno [1] => 3 [2] => Masculino [3] => Peixe ) )
Lê-se:
[Linha 0] => Colunas( [0][1][2][3])
[Linha 1] => Colunas( [0][1][2][3])
[Linha 2] => Colunas( [0][1][2][3])
[Linha 3] => Colunas( [0][1][2][3])
E se quiséssemos imprimir apenas o Animal que o Bruno tem? como faríamos?
Só dar um echo() na posição referente à informação:
echo($Matriz[3][3]);
Segue abaixo o código que construí para mostrar todos os exemplos acima funcionando.
Abra um arquivo em branco, e cole o conteúdo abaixo em vermelho e salve com a extensão .php para efetuar os testes.
<html>
<title> Exemplo 3 - Trabalhando com arrays </title>
<body>
<?php
//Antes de criar o array, precisamos criar uma variável que receberá esse array
//Vamos criar um array de clientes com 4 clientes
//A primeira posição do array é a posição 0 (zero) e as próximas são incrementadas de um em um.
$Clientes = array("Anastacio","Ariovaldo","Cleonilda","Luprecio");
//Pronto, nosso array foi criado, agora vamos acessar o conteúdo do nosso array.
//para imprimir o array na tela precisaremos usar o print_r, pois se usarmos o echo na variável só mostrará a palavra "array" como retorno
print_r($Clientes);
//Seu array será impresso na tela mostrando a posição do dado e o conteúdo da seguinte forma:
//Array ( [0] => Anastacio [1] => Ariovaldo [2] => Cleonilda [3] => Luprecio )
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
//se quisermos imprimir apenas um item de uma determinada posição, deveremos utilizar o echo
echo "Informacao da posicao 2 do nosso array: ", $Clientes[2]; //Ja que array começa na posição zero, Cleonilda deverá aparecer na tela
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
//Outra forma de criar arrays
//Criando arrays escrevendo direto na posição da variável
$Animais[0] = "Cachorro";
$Animais[1] = "Gato";
$Animais[2] = "Passaros";
$Animais[3] = "Peixes";
print_r($Animais); //Imprimindo o Array "Animais" com as posições e itens
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
//Outra forma de criar arrays
//Criando arrays apontando a informação para a posição do array
//Note que os dados são separados por vírgulas
$Cores = array(
0 => "Marrom",
1 => "Preto",
2 => "Verde",
3 => "Amarelo"
);
//Imprimindo o array Cores
print_r($Cores);
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
//Arrays Multidimensionais
//Vejo isso como uma matriz de dados, vamos construir para entender melhor
//Vamos construir uma matriz onde na primeira linha teremos.. Nome, Idade, Sexo, Animal e nas linhas subsequentes preencheremos de acordo com a primeira linha.
$Matriz = array(
0 => array("Nome","Idade","Sexo","Animal"),
1 => array("Fabio","31","Masculino","Cachorro"),
2 => array("Claudia","20","Feminino","Passaro"),
3 => array("Bruno","3","Masculino","Peixe")
);
print_r($Matriz); //Imprimindo a Matriz
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
//Se eu quisesse imprimir apenas o animal que o Bruno tem, e sabemos que é a linha 4, coluna 4, poderíamos imprimir com a função echo()
echo"O Bruno tem um ",$Matriz[3][3];
echo" como animal de estimacao";
?>
</body>
</html>
Espero que tenham gostado de mais esse post!! Até o próximo...
Imagine um trem de carga com 10 vagões, o trem seria o array e os vagões de carga as posições onde podemos colocar algum conteúdo.
Se numerarmos os 10 vagões de 1 a 10 e quiséssemos pegar algum conteúdo do vagão 5, poderíamos ir direto no vagão 5 e pegar, pode reordenar os vagões ou simplesmente olhar o que tem dentro... e basicamente, é assim que um array funciona..
Agora vamos parar com as historinhas e vamos contruir uns arrays para ver como funciona o armazenamento de informação neles...
Vamos supor que tivéssemos uma empresa e precisássemos guardar uma lista de clientes; construiríamos isso da seguinte forma:
$Clientes = array("Anastacio","Ariovaldo","Cleonilda","Luprecio");
Como a gente lê isto?
A gente lê que o array chamado $Clientes tem o Anastacio, Ariovaldo, Cleonilda e Luprecio armazenados como clientes. E cada um quardado em uma posição desta "agenda de clientes".
Anastacio na posição 0, Ariovaldo na posição 1, Cleonilda na posição 2 e Luprecio na posição 3.
Existem duas formas de imprimir esse array.
A mais trabalhosa, que é com o echo(NomeDoArray[PosiçãoDaInformação]) ou com o Print_r(NomeDoArray) que é a menos trabalhosa caso se queira imprimir todo o conteúdo na tela.
O echo é mais recomendado no caso de se querer imprimir apenas uma posição manualmente. Mais para frente veremos estruturas condicionais que ajudam a imprimir só o que se quer.
Vamos utilizar o print_r(); para este exemplo como se segue:
print_r($Clientes);
O resultado deve ser:
Array ( [0] => Anastacio [1] => Ariovaldo [2] => Cleonilda [3] => Luprecio )
Outra forma de se criar um array é escrevendo direto na posição de memória da variável como no exemplo abaixo:
$Animais[0] = "Cachorro";
$Animais[1] = "Gato";
$Animais[2] = "Passaros";
$Animais[3] = "Peixes";
Ao fazer um print_r(); do array Animais, você deverá receber um resultado parecido com o exemplo de $Clientes acima.
Mais uma forma de se criar um array é apontar o conteúdo para a posição relativa interna deste array. É muito parecido com a primeira forma de criar array que escrevi para o exemplo de $Clientes:
$Cores = array(
0 => "Marrom",
1 => "Preto",
2 => "Verde",
3 => "Amarelo"
);
E temos também, arrays multidimensionais.
Uma matriz é um array bidimensional, por exemplo, uma matriz 4X4 teria:
[linha 0, coluna 0][linha 0, coluna 1][linha 0, coluna 2][linha 0, coluna 3]
[linha 1, coluna 0][linha 1, coluna 1][linha 1, coluna 2][linha 1, coluna 3]
[linha 2, coluna 0][linha 2, coluna 1][linha 2, coluna 2][linha 2, coluna 3]
[linha 3, coluna 0][linha 3, coluna 1][linha 3, coluna 2][linha 3, coluna 3]
E como montaríamos isto?
Vamos construir uma matriz onde na primeira linha teremos.. Nome, Idade, Sexo, Animal e nas linhas subsequentes preencheremos de acordo com a primeira linha.
$Matriz = array(
0 => array("Nome","Idade","Sexo","Animal"),
1 => array("Fabio","31","Masculino","Cachorro"),
2 => array("Claudia","20","Feminino","Passaro"),
3 => array("Bruno","3","Masculino","Peixe")
);
Ao imprimir a $Matriz com o print_r(); teremos o seguinte resultado que vou separar em linhas para ficar mais fácil de compreender:
Array (
[0] => Array ( [0] => Nome [1] => Idade [2] => Sexo [3] => Animal )
[1] => Array ( [0] => Fabio [1] => 31 [2] => Masculino [3] => Cachorro )
[2] => Array ( [0] => Claudia [1] => 20 [2] => Feminino [3] => Passaro )
[3] => Array ( [0] => Bruno [1] => 3 [2] => Masculino [3] => Peixe ) )
Lê-se:
[Linha 0] => Colunas( [0][1][2][3])
[Linha 1] => Colunas( [0][1][2][3])
[Linha 2] => Colunas( [0][1][2][3])
[Linha 3] => Colunas( [0][1][2][3])
E se quiséssemos imprimir apenas o Animal que o Bruno tem? como faríamos?
Só dar um echo() na posição referente à informação:
echo($Matriz[3][3]);
Segue abaixo o código que construí para mostrar todos os exemplos acima funcionando.
Abra um arquivo em branco, e cole o conteúdo abaixo em vermelho e salve com a extensão .php para efetuar os testes.
###############################
<html>
<title> Exemplo 3 - Trabalhando com arrays </title>
<body>
<?php
//Antes de criar o array, precisamos criar uma variável que receberá esse array
//Vamos criar um array de clientes com 4 clientes
//A primeira posição do array é a posição 0 (zero) e as próximas são incrementadas de um em um.
$Clientes = array("Anastacio","Ariovaldo","Cleonilda","Luprecio");
//Pronto, nosso array foi criado, agora vamos acessar o conteúdo do nosso array.
//para imprimir o array na tela precisaremos usar o print_r, pois se usarmos o echo na variável só mostrará a palavra "array" como retorno
print_r($Clientes);
//Seu array será impresso na tela mostrando a posição do dado e o conteúdo da seguinte forma:
//Array ( [0] => Anastacio [1] => Ariovaldo [2] => Cleonilda [3] => Luprecio )
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
//se quisermos imprimir apenas um item de uma determinada posição, deveremos utilizar o echo
echo "Informacao da posicao 2 do nosso array: ", $Clientes[2]; //Ja que array começa na posição zero, Cleonilda deverá aparecer na tela
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
//Outra forma de criar arrays
//Criando arrays escrevendo direto na posição da variável
$Animais[0] = "Cachorro";
$Animais[1] = "Gato";
$Animais[2] = "Passaros";
$Animais[3] = "Peixes";
print_r($Animais); //Imprimindo o Array "Animais" com as posições e itens
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
//Outra forma de criar arrays
//Criando arrays apontando a informação para a posição do array
//Note que os dados são separados por vírgulas
$Cores = array(
0 => "Marrom",
1 => "Preto",
2 => "Verde",
3 => "Amarelo"
);
//Imprimindo o array Cores
print_r($Cores);
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
//Arrays Multidimensionais
//Vejo isso como uma matriz de dados, vamos construir para entender melhor
//Vamos construir uma matriz onde na primeira linha teremos.. Nome, Idade, Sexo, Animal e nas linhas subsequentes preencheremos de acordo com a primeira linha.
$Matriz = array(
0 => array("Nome","Idade","Sexo","Animal"),
1 => array("Fabio","31","Masculino","Cachorro"),
2 => array("Claudia","20","Feminino","Passaro"),
3 => array("Bruno","3","Masculino","Peixe")
);
print_r($Matriz); //Imprimindo a Matriz
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
echo "<br>"; // pulando linha
//Se eu quisesse imprimir apenas o animal que o Bruno tem, e sabemos que é a linha 4, coluna 4, poderíamos imprimir com a função echo()
echo"O Bruno tem um ",$Matriz[3][3];
echo" como animal de estimacao";
?>
</body>
</html>
###############################
Espero que tenham gostado de mais esse post!! Até o próximo...
Assinar:
Postagens (Atom)