2 Comandos Básicos
A estrutura básica um programa escrito em PHP muitas vezes carrega com sigo uma estruturas da linguagem HTML. Como citado anteriormente, o PHP possui grande capacidade de manipulação de dados em formato textual. Tratando do ambiente web então essa habilidade é estendida para o HTML . Repare que no final do último capítulo, ao exibirmos os scripts do arquivo cliente.php
tínhamos em meio a diversas tags HTML códigos PHP. Uma parte do script encontrava-se na parte superior esquerda aplicando a função date()
para capturar a data atual e atribuindo a variável $data_atual
. Na linguagem PHP as variáveis em sua sintaxe requer o uso do símbolo do cifrão “$
”. Um ponto muito importante é que ao inserirmos scripts PHP precisamos indicar uma tag de abertura “<?php
” e uma tag de fechamento ?>
que demarcam onde será processado PHP. Como podemos ver na Figura 1.4 as tags não estão restritas a parte inicial do arquivo, elas podem ser inseridas em meio as tags do HTML . Em nosso caso, inserimos essa informação no atributo value do elemento input que registra no formulário a data. Repare que durante todo processo não tratamos com arquivos .html
diretamente. Ao processar cliente.php
a saída é essencialmente texto, e no caso na estrutura do HTML para que o usuário final possa receber, renderizar por meio do browser e visualizar a resposta. Outro ponto é que ao final de cada linha é necessário inserir o ;
(ponto e vírgula)
Antes de passarmos a frente, é muito importante que os 4 pontos abaixo sobre o PHP estejam claros.
As variáveis em PHP são iniciadas pelo símbolo “
$
”As tags do PHP
<?php
?\>
podem ser inseridas livremente em meio a parte textual em um arquivo.php
O PHP permite manipular com um grande grau de facilidade texto no formato HTML.
Toda linha de código em PHP necessariamente deve terminar em ponto e vírgula.
2.1 Variáveis em PHP
As variáveis armazenam dados para poderem ser usados em outro momento do programa. Cada uma das variáveis está associada a uma posição da memória volátil do computador. Diferente de diversas outras linguagens como C, C++, Tcl, Perl, o PHP possui tipagem dinâmica e fraca. Portanto, a atribuição de variáveis é imediata
$vader = 8.3;
$Obiwan_Kenobi = "master";
$sith = array('senador' => "Palpatine", 'chanceler'=> "Palpatine", 'imperador' => 'Darth Sidious');
$Anakin = "8.3";
$R2D2 = true;
$Luke = 86;
$C3PO = new stdClass();
$C3PO->'ower' = ['Anakin','Jabba','Leia','Luke' 'Rey','Han Solo'];
$C3PO->translate($input);
$R2D2 = 'driod';
Ao nomear variáveis lembre que o PHP é case-sensitive. Como é possível perceber podemos facilmente atribuir valores as variáveis. Sendo fracamente tipada, podemos trocar os tipos de dados para as variáveis em tempo de execução. No exemplo acima no primeiro momento $R2D2
é booleano, já na última linha a variável é alterada para um string.
Basicamente, no PHP existem variáveis do tipo:
numérica (int, real, float, double)
alfanumérico (string)
array
objeto
2.1.1 Numérica
Podem possuir valor inteiro ou reais, positivos e negativos e em outras bases
$numero = 5;
$hexa = 0x0b;
$s=4.0005
2.1.2 Alfanumérica
$nome = "Alberto Roberto";
Cadeia de caracteres que pode ser empregados tanto aspas duplas quanto simples.
$texto = 'Uhm! Estrutura de dados é muito legal!';
2.1.3 Array
As variáveis comuns, denotadas por escalares, podem armazenar no máximo apenas um valor por vez. Um array, denotado também por vetor, permite a alocação de diversos valores simultaneamente, pois como veremos ao da disciplina, se trata de uma estrutura de armazenamento. Os arrays permitem criar um identificador para cada elemento dentro de sua estrutura a partir de índices numéricos. Entretanto, diferente, de linguagens como C ou C++, com o PHP é possível atribuir índices alfanuméricos. Esse recurso é extremamente interessante.
Para armazenar valores podemos inserir manualmente os valores dos índices. Note que o índice começa pelo zero.
$vetor[0] = 50;
$vetor[1] = 58;
$vetor[2] = 55;
$vetor[3] = 51;
echo $vetor
array(4) {
0]=>
[int(50)
1]=>
[int(58)
2]=>
[int(55)
3]=>
[int(51)
}
É possível também deixar que o PHP atribua o número de índice automaticamente.
$brasileirao[] = "Palmeiras";
$brasileirao[] = "Palmeiras";
$brasileirao[] = "Atlético Mineiro";
$brasileirao[] = "Flamengo";
$brasileirao[] = "Flamengo";
#Ultmos campeos brasileiros
echo $brasileirao
array(5) {
0]=>
[string(9) "Palmeiras"
1]=>
[string(9) "Palmeiras"
2]=>
[string(17) "Atlético Mineiro"
3]=>
[string(8) "Flamengo"
4]=>
[string(8) "Flamengo"
}
$copa['local'] = "Chile";
$copa['campeao'] = "Brasil";
$copa['ano'] = 1962;
#Copa do Mundo no Chile
echo $copa
array(3) {
"local"]=>
[string(7) "Chile"
"campeao"]=>
[string(13) "Brasil"
"ano"]=>
[int(1962)
}
Podemos definir array de duas formas diferentes. É possível também definir arrays multidimensionais. A definição do array multidimensional $cars
descrita nos comandos acima é a representação da Tabela 2.1. Da mesma forma é possível representar um array de maior dimensão.
= array ( 'jan' => 120, 'fev' =>134, 'mar' => 132, 'abr' => 114);
vendas$ # equivalentemente
= ['jan' => 120, 'fev' =>134, 'mar' => 132, 'abr' => 114];
vendas$
##
$cars = array (
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
; )
2.1.4 Objeto
Um tipo interessante são os objetos da chamada classe padrão (stdClass). Ela é uma classe genérica vazia, isto é, não possui métodos nem propriedades pre definidos. Ela é vantajosa quando desejamos criar um objeto vazio e ir incluindo métodos e atributos mediante a necessidade.
<?php
$obj = new stdClass();
$obj->foo = 42;
$obj->{1} = 42;
var_dump($obj);
2.2 Estrutura de Dados em PHP
As estruturas de controle, comuns à maioria das linguagens de programação, são fundamentais para realizar decisões lógicas e processo de repetição. Os comandos condicionais e de repetição são:
if
,if
…else
,if
…elseif
…else
switch
while
edo
…while
for
foreach
2.2.1 Comandos de Condicionais
A sintaxe da dos comandos de verificar expressões para tomada de decisão
if (expressao1)
{ bloco1 }elseif(expressao2)
{ bloco2 }else{ bloco3 }
Um exemplo simplório poderia se aplicar para a classificação de notas de alunos.
<?php
$prova=7;
$prova2=5;
$media=($prova1+$prova2)/2
if ($media < 3)
{$desempenho = "PÉSSIMO";
}if ($media < 5)
{$desempenho = "RUIM";
}if ($media < 7)
{$desempenho = "MÉDIO";
}elseif($media < 9)
{ $desempenho = "BOM";
}else
{$desempenho = "EXCELENTE";
}echo "O seu desempenho foi $desempenho"
?>
Uma variação da sequência de controle apresentado acima pode ser feita por meio do comando switch
. Nesta forma, haverá um processo de comparação com o valor $opcao
e os possíveis casos apresentados. Na hipótese de não se enquadrar nos casos verificados, então será acionado o bloco de comandos referente ao caso default
. No momento em que a variável $opcao
é verificada para um caso encerra-se aí processo de novas verificações. O término desse processo é demarcado pelo comando break
. Tanto default
como break
são elementos opcionais, mas altamente recomendáveis os seus empregos.
<?php
switch($opcao)
{case 's':
echo "Você escolheu a opção SIM";
break;
case 'n':
echo "Você escolheu a opção NÃO";
break;
default:
echo "A opção digitada é inválida";
break;
}?>
2.2.2 Comandos de Repetição
São comandos aplicados sobre um bloco de código no qual há o interesse em executá-lo reiteradas vezes. A quantidade de iterações pode ser pré estabelecida como também está sujeita a verificação de uma determinada condição. O while
é um exemplo de comando que avalia a satisfação de uma expressão a cada iteração. O processo somente é encerrado quando as condições são verificadas
<?php
#Exibe os valores de $i iniciando de 1 até 6
$i = 1;
while ($i < 6) {
echo $i;
$i++;
}?>
Outro comando muito similar ao while
é o do ...while
. A única diferença reside no momento onde é checado as condições. Enquanto o while
verifica no início de cada repetição, o do ...while
realiza ao final. Desta forma, o loop é executado ao menos uma vez. Nestes comandos, certifique-se que em algum momento a condição de stop do laço será atendida. Caso contrário, poderá entrar em um estado chamado de loop infinito, que fatalmente irá consumir boa parte dos recursos da máquina.
<?php
#Exibe os valores de $i iniciando de 1 até 6
$i = 1;
do {
echo $i;
$i++;
while ($i < 11);
} ?>
É possível ainda inserirmos elementos de controle do fluxo de execução como break
e continue
. Eles permitem interromper o loop e pular para o início da próxima iteração.
<?php
#Interrompe o loop caso $i=5.
$i = 0;
while (true) {
if ($i == 5) {
break;
}echo $i;
$i++;
}# Salta para a próxima iteração quando $i é par
$i = 0;
while($i < 10){
$i++;
if($i % 2 == 0){
continue;
}echo $i;
}?>
Quando sabemos quantas vezes o script será executado, empregamos o comando for
. Sua sintaxe básica é
for (expressao1, expressao2, expressao3) {
// bloco de codigo
}
Os argumentos funcionam da seguinte maneira
A expressao1 é avaliada uma vez
A expressao2 é avaliada antes de cada iteração
A expressao3 é avaliada após cada iteração
Um exemplo simples para printar os números de 0 a 10.
<?php
for ($x = 0; $x <= 10; $x++) {
echo "item: $x <br>";
}?>
As instruções de controle de fluxo de execução break
e continue
são igualmente possíveis utilizando o for
. Os exemplos abaixo são uma pequena modificação do caso anterior.
<?php
for ($x = 0; $x <= 10; $x++) {
if ($x == 3) break;
echo "item: $x <br>";
}for ($x = 0; $x <= 10; $x++) {
if ($x == 3) continue;
echo "item: $x <br>";
}?>
Outro comando extremamente usado e que possui uma quantidade pré estabelecida de repetição em sua execução é o foreach
. Ele é útil sobretudo quando precisamos percorrer arrays. Há duas sintaxes para ele.
foreach ($vetor as $value)
{
bloco de instrucoes
}#Quando a chave for importante
foreach ($vetor as $key => $value)
{
bloco de instrucoes }
Exemplos simples com o comando foreach
#Loop pelos itens de um array indexado
<?php
$cores = array("vermelho", "verde", "azul", "amarelo");
foreach ($cores as $x) {
echo "$x <br>";
}#Imprima a chave e o valor do array $cliente
$cliente = array("Pedro"=>"35", "Bruna"=>"37", "Jorge"=>"43");
foreach ($cliente as $x => $y) {
echo "$x : $y <br>";
}?>
No caso foreach
também podemos introduzir break
e continue
<?php
# Exibe todas as cores até o aparecimento do "azul"
$cores = array("vermelho", "verde", "azul", "amarelo");
foreach ($cores as $x) {
if ($x == "azul") break;
echo "$x <br>";
}# Exibe todas as cores exceto "azul"
foreach ($cores as $x) {
if ($x == "azul") continue;
echo "$x <br>";
}?>
2.3 Funções PHP
As funções em PHP são facilmente definidas. Elas são declaradas pela palavra reservada function
seguida do nome da função. Na atribuição de nome de uma função em PHP permite usar qualquer sequência de caracteres que comece com uma letra ou sublinhado. No caso das funções, o PHP não é case sensitive, isto é, não há diferença não diferencia letras maiúsculas de minúsculas para o nome de funções. Sua sintaxe básica pode ser descrita da seguinte maneira tanto nas definições dos parâmetros quanto .
function [nome_funcao]([parametro_1],[parametro_2],...,[parametro_n]){
//Conjunto de instrucoes
return [retorno_funcao];#opcional
}
Um exemplo de uma declaração de uma função bem simples segue abaixo.
<?php
function soma($num_1, $num_2){
$total = $num_1 + $num_2;
return $total;
}?>
O PHP suporta três formas de passagem dos argumentos, a saber: por valor, por referência e de valores padrões.