Capítulo 2. PHP - Introdução

O php é uma linguagem de programação para ambiente web ou seja com ela, você pode desenvolver aplicações que possam ser acessadas via browser (netscape,internet explorer, opera, etc).

Essas aplicações podem ser usadas tanto para comercio eletrônico(internet) como em aplicações de menor abragência como um sistema de controle de estoque de uma empresa (intranet), por exemplo.

O php hoje tem despontado como uma das linguagens de progamação para web mais aceitas pela sua alta performance, desbancando gigantes como ASP(microsoft) e JSP(sun).

PHP - A Linguagem

Principio de Funcionamento

O php diferentemente das outras linguagens citadas acima não é compilada, ou seja não podemos gerar um codigo executável, suas instruções devem ser interpretadas por um software que geralmente é um servidor web com suporte a php. Os scripts em php devem gerar páginas que possam ser entendidas pelo browser.

Vantagens do Uso do PHP

Interface com SGBD's: O php tem sido usado com sucesso com uma grande gama de SGBD's por exemplo: Oracle, postgres, mSQL, MySQL, Sysbase,Interbase dentre outros.

Portabilidade: O php tambem tem sido usado em diferentes sistemas operacionais tais como windows 95/98/NT, linux, solaris e outros sistemas UNIX.

Aplicações mais leves: Uma vez que o php é um módulo do servidor web isso faz com que os scripts php gastem uma quantidade menor de recursos do servidor, que scripts cgi por exemplo.

Um pouco de prática

Antes de conhecer um pouco melhor os comandos do php, se faz necessário neste momento, algum esclarecimento sobre o php junto com o html, para que possamos praticar os nossos exemplos.

Tudo que o browser consegue entender são tags html ou alguma linguagem script(como javascript por exemplo), a linguagem javascript assim como o html fogem do escopo deste tutorial, sendo assim, veremos só o que é necessário para que possamos praticar nossos exemplos.

Em html existem algumas tags que são obrigatórias nas páginas que serão geradas pela nossa aplicação php são elas:

<html> - abre uma pagina html

</html> - fecha uma pagina html

<title> - abre uma seção de título, o texto que é exibido na barra título do nosso browser

</title> - fecha uma seção de título

<body> - início do corpo da página, tudo que deve ser mostrado na página deve ser colocado após essa tag e antes da tag </body>.

Então vamos a nosso primeiro programa php, um programa simples que escreve a palavra TESTE no browser, chamaremos este de teste.php e deve ser colocado no diretório public_html no diretório raiz (/home/desenv/public_html/) do usuário desenv:

Exemplo 2-1. Primeiro programa em PHP

<? 
echo "<html>"; 
echo "<title>Título</title>"; 
echo "<body>"; 
echo "<br>TESTE"; 
echo "</body>"; 
echo "</html>";
?> 

Para que você possa verificar o resultado basta acessar a URL http://localhost/~desenv/teste.php em seu browser

Usando php embutido no html

Pode ser muito complicado e pouco prático utilizar o comando echo em toda tag que se quer passar para o browser, sendo assim é possivel usar um script em php embutido no html. Isso é possível pois o servidor web apenas interpretará o código php que estiver entre os delimitadores <? ?> , sendo assim podemos reescrever o código acima como:

Exemplo 2-2. Segundo programa em PHP

<html> 
<title>Título</title> 
<body> 
<br> 
<? 
echo "TESTE"; 
?> 
</body>
</html> 

Perceba que é mais interessante escrevermos um script embutido em uma página html, pois podemos editar a página em html em um editor como o BlueFish que acompanha o Kit do Desenvolvedor PHP Lite e apenas na área que desejamos incluímos o script php para gerar os dados dinamicamente. Note que se incluírmos ao invés do comando:

echo "TESTE";

substituirmos por:

echo "A hora neste instante é: date();";

Teremos uma página dinamicamente gerada com a data e hora no momento que acessarmos

Sintaxe do PHP

O PHP é uma linguagem estruturada assim como é o C, PASCAL entre outras. A sintaxe de seus comandos é semelhante à linguagem C. Em php os comandos devem ser limitados por ponto-e-vírgula, por exemplo:

Exemplo 2-3. Os comandos PHP devem ser limitados por "ponto-e-vírgula"

 		echo "10"; 

Blocos de comandos e funções são delimitados por { e }.

As variáveis declaradas devem ser precedidas de $, por exemplo:.

Exemplo 2-4. As variáveis devem ser precedidas de $.

		$variavel = 10; 

Literais

Os valores literais são valores estáticos que podem ser direcionados direto pela saída do php. Exemplo:

Exemplo 2-5. Valores literais em PHP

 		echo "LBS - Linux Brasil Sistemas"; 
 		echo 125; 

Literais Numéricos

São valores amplamente utilizados em qualquer linguagem de programação para o cálculo de fórmulas matemáticas, esses são geralmente exibidos em sua forma decimal mas podem ser expressos em outras bases tambem tais com octal(base 8) e hexadecimal(base 16).

Literais Alfanuméricos

Mas especificamente texto, ou seja cadeias de caractere que devem ser delimitadas com caracteres especificos para esse propóosito.

Esses caracteres delimitadores podem ser:

aspas simples : 'texto'

aspas duplas : "texto"

aspas invertidas: `texto`

Os textos delimitados por aspas duplas podem receber caracteres de controle - diferentemente dos delimitados por aspas simples - que podem servir para impressão de caracteres que são reservados da linguagem ou para formatação do texto a ser impresso exemplo:

Exemplo 2-6. Literais Alfanuméricos

echo "custo total R\$ 4,00";

A saida será:

custo total R$ 4,00 

Note a existência do caracter de barra invertida (\) antes do sinal de cifrão ($). Isto se faz necessário uma vez que o cifrão é um caracter reservado à linguagem PHP para declaração de variáveis.

Segue abaixo algumas sequencias de controle

Tabela 2-1. Sequencias de Controle

Sequencias de controleEfeito
\tinsere um tab
\nnova linha
\$imprime $
\\imprime \

Existem outras sequencias de controle para maiores informações consulte o Manual do PHP que faz parte do Kit do Desenvolvedor PHP.

Com aspas duplas você tambem pode exibir o conteúdo de variáveis, assunto que veremos mais adiante, no meio dos seus textos. Por exemplo:

Exemplo 2-7. Exibindo conteúdo de variável

 		$valor = 4,00; 
 		echo "custo total R\$ $valor"; 

isso ira imprimir : custo total R$ 4,00

Com aspas invertidas você consegue executar comandos do sistema operacional direto do seu programa.

Exemplo 2-8. Executando comandos do S.O. no programa

	 	echo 'ls -l'; 

isso vai listar os arquivos do diretório onde a aplicação esta trabalhando.

Constantes

As vezes se faz necessário a definição de valores que não sejam alterados durante a execução de um programa, esses valores são chamados de constantes.

Em php você pode definir constantes apartir da função define().

Exemplo 2-9. Definindo uma constante com a função define()

 		define("c", 300.000); 
 		echo "a velocidade da luz é ?.c.? Km/s"; 

isso irá imprimir:

a velocidade da luz é 300.000 Km/s

Variáveis

Variáveis tem por função armazenar dados que serão posteriormente recuperados e processados em alguma expressão. Lembrando que as variáveis devem ser precedidas de $.

Exemplo 2-10. Armazenando conteúdos em variáveis

 
 	      $pi = 3,14; $R = 10; 
 	      $c = 2 * $pi * $R; 

após a execução das instruções acima o valor em $c será igual à 62,8.

Tipos de dados

As variáveis devem ser inicializadas antes de serem usadas em qualquer expressão, a linguagem PHP tem alguns tipos de dados que podem ser usados para inicializar variáveis, são eles:

Numéricos

São valores que podem ser inteiros, de ponto flutuante, hexadecimal, etc.

Exemplo 2-11. Tipo de dados numérico

		$inteiro = 10; 
 		$real = 10.001; 
 		$nd = 10.0e-2; // 100 em notação decimal 

Strings

São textos delimitados por aspas simples ou duplas, e podem também conter caracteres de controle.

Exemplo 2-12. Tipo de dados string

		$empresa = "Linux Brasil Sistemas" 
 		$sigla = 'LBS'; 

Arrays

Existem alguns tipos de variáveis que podem conter mais de um dado. À estas variáveis é dado o nome de arrays, a linguagem PHP implementa bem a ideia de array.

Exemplo 2-13. Tipo de dados array

 		$a[1] = 10; 
 		$a[2] = 20;
		$a = array(10,20);
		$a = array(0 => 10, 1 => 20);

OBS.: O índice do primeiro elemento do array é 0 (zero).

O php dispõe de algumas funções que podem simplificar a vida de quem trabalha com array, são funções para ordenar e contar o número de elementos do array. Vejamos algumas dessas funções:

count(),sizeof() -- retorna o número do array

sort() -- ordena um array

rsort() -- ordena um array na ordem inversa

Operadores

Operadores aritméticos

São usados para executar operações aritméticas com operandos os quais podem ser variáveis, constantes ou literais.

Os operadores são:

Tabela 2-2. Operadores Aritméticos

operadorOperaçãoExemplo
+soma$a +1
-subtração$b -$c
*multiplicação3 * $c
/divisão$a / $b
%módulo$a % 2

Operadores lógicos(booleanos)

Tabela 2-3. Operadores Booleanos

operadorexemplodescrição
&&$a && $bverdadeiro se a e b forem verdadiros
||$a || $bverdadeiro se a ou b forem verdadiros
!!$averdadeiro se a for falso

obs.: se o valor de uma variável numérica é zero essa é considerada falsa quando usada em operações lógicas, se uma variável string é vazia ela é tambem considerada falsa.

Operadores de atribuição

Às vezes se faz necessário atribuir valores à determinadas variáveis. Nesse caso nós podemos usar operadores de atribuição.

Tabela 2-4. Operadores de Atribuição

operadorexemplodescrição
=$a = $bjoga o valor de b em a
+=$a += $bsoma a com b e atribui o valor em a
-=$a -= $bsubtrai b de a e atribui o valor em a

Operadores de comparação

Os operadores de comparação podem usados para comparar o conteúdo de variáveis com o conteúdo de outras variáveis ou literais.

Tabela 2-5. Operadores de Comparação

operadorexemplodescrição
==$a == $bverdadeiro se a igual a b
!=$a != $bverdadeiro se a diferente de b
<$a < $bverdadeiro se a menor que b
<=$a <= $bverdadeiro se a menor ou igual a b
>$a > $bverdadeiro se a maior b
>=$a >= $bverdadeiro se a maior ou igual a b

Estruturas de controle de Fluxo

Comandos condicionais

O Comando IF

Geralmente dentro dos programas se faz necessário a tomada de decisões sobre o fluxo que o programa deve seguir. Essas decisões são tomadas baseadas no teste de condições, vejamos um exemplo:

Exemplo 2-14. Comando IF

	
 	if(condição){ 
 		bloco_de_comandos_1;		 
 	} 
 	else{ 
 		bloco_de_comandos_2; 
 	} 

Se condição é verdadeira então bloco_de_comandos_1 é executado caso contrário bloco_de_comandos_2 será executado. As seguintes formas do comando if também são aceitas :

Essa forma também é conhecida como forma incompleta:

Exemplo 2-15. Forma incompleta do comando IF

 	if(condição){ 
 		bloco_de_comandos_1; 
 	} 

Se a condição é verdadeira bloco_de_comandos_1 e executado e o programa segue seu fluxo normal, se a condição é falsa bloco_de_comandos_1 não é executado e o programa segue seu fluxo normal.

As vezes se faz necessário o teste de diversas condições em um mesmo momento no programa e baseado no teste dessas condições você pode executar diversos comandos, com a forma abaixo é possível realizar esses testes:

Exemplo 2-16. Testes de várias condições como o comando IF

 	if(condição1){ 
 		bloco_de_comandos_1; 
 	}elseif(condição2){ 
 		bloco_de_comandos_2; 
 	}elseif(condição3){
 		bloco_de_comandos_3; 
 	} 

Uma outra forma de usar o if é a seguinte:

Exemplo 2-17. Outra forma de testes de várias condições

	
 	if(condição1):
		bloco_de_comandos_1; 
	elseif(condição2): 
 		bloco_de_comandos_2; 
 	else: 
 		bloco_de_comandos_2; 
 	endif; 

OBS.:

1- No comando if é posssivel usar uma infinidade de cláusulas elseif mas apenas uma else

2- Os blocos de comandos vistos no exemplo devem ser vistos como uma sequencia qualquer de comandos, no entanto se forem compostos de apenas um comando fica opcional mas recomendado o uso das chaves que delimitam os blocos, exemplo:

Exemplo 2-18. Testes de várias condições, porém o bloco de comando sendo apenas um comando

	if(condição1) 
 		a=1; 
 	elseif(condição2) 
 		a=2; 
 	elseif(condição3) 
 		a=3; 

Laços

Quando necessitamos que um determinado número de instruções sejam executadas um certo número de vezes, até que uma certa condição se torne verdadeira se faz necessário o uso de uma estrutura de controle de fluxo denominada laço. Em PHP esses laços podem ser implementados usando os comandos while, do..while e for. A seguir veremos o uso desses comandos.

O comando FOR

Devemos usar o comando for quando, em nosso programa, se fizer necessário a execução de um bloco de comandos uma determinada quantidade de vezes. O comando for é muito usado para busca de valores em vetores (arrays), assim como no acesso a resultados de pesquisas feita em um banco de dados.

Para usar o comando for, em geral, é necessário passar três parâmetros. São eles:

Comando de inicialização - com esse parâmetro você consegue garantir que uma determinada condição, necessária para o laço, ocorra.

Condição do laço - essa é a condição que deve ser verdadeira para que o laço continue.

Comando do laço - esse comando é executado sempre que a condição do laço é verdadeira, e geralmente é usado para incrementar alguma variável.

A sintaxe é a seguinte:

	for(comando de inicialização;condição do laco;comando do laco){

		bloco_de_comandos;

	}

Obs.: qualquer um dos parâmetros citados acima pode ser vazio.

Vejamos o seguinte exemplo:

Exemplo 2-19. Exemplo básico do comando for

	for(;;){ 

 		bloco_de_comandos; 
		
 	} 

O exemplo acima produzirá um laço infinito, ou seja, o bloco_de_comandos será executado interminávelmente.

Exemplo 2-20. Ordenando um array com o comando for

 				
        $a = array(5, 3, 7, 1, 2);

        echo "<br>Array Original: ";

        for($i=0;$i<=count($a);$i++){

                echo " ".$a[$i];
                
        }        
        for($i=0;$i<count($a)-1;$i++){

                if($a[$i] > $a[$i+1]){
                        $tmp = $a[$i+1];
                        $a[$i+1] = $a[$i];
                        $a[$i] = $tmp;
                        $i=-1;
                }       

        }
        echo "<br>Array Ordenado: ";

        for($i=0;$i<=count($a);$i++){

                echo " ".$a[$i];
                
        
        }       

Os comandos WHILE, DO...WHILE

Esses comandos podem ser usados quando queremos executar algum bloco de comandos baseado na avaliação de uma determinada expressão lógica. Vamos a sintaxe:

	while(expressão){
		
		bloco_de_comados;
	}

Se expressão é verdadeira então o bloco de comandos é executado, se nós desejarmos que o bloco de comandos seja executado pelo menos uma vez, então podemos usar o comando do...while ao invés do comando while. O comando do...while pode ser usado da seguinte forma:

	
	do{ 
 		bloco_de_comandos;
		
	}while(expressão);

Os comandos CONTINUE, BREAK

Com esses dois comandos é possível ter um maior controle dos laços, com o comando continue o programador pode fazer com que o fluxo normal do laço seja quebrado e a expressão lógica do laço ( no caso dos comandos while e do..while) ou a condição do laço(no caso do comando for) seja reavaliados. Vejamos um exemplo:

Exemplo 2-21. Exemplo do comando CONTINUE.

		for( $i=0; $i<=100; $i++ ){ 

 			if ( $i % 2 != 0 ){ 
 				continue; 
 			} 
 			echo $i; 
 		} 

No caso do exemplo acima, só será impresso os números pares até, pois toda vez que a expressão $i % 2 != 0 for verdadeira a condição do laço será testada novamente.

Já com o comando break o laço é abortado imediatamente, vejamos o exemplo abaixo

Exemplo 2-22. Exemplo do comando BREAK.

 	$i = 10;	
 	do{ 

 	 	echo $i; 
 	 	break; 
  		 
 	}while( $i<=100 ); 

Nesse exemplo será impresso apenas o número 10.

Obs.: Os comandos continue e break devem ser usado somente dentro de laços, ou seja, seu uso é somente no caso dos comandos for, while e do...while.