Este post é uma continuação da primeira parte de PHP - Programando com Orientação a Objetos.
1.7] Operadores
1.7.1] Atribuição
Um operador de atribuição é utilizado para definir uma variável atribuindo-lhe um valor. O operador básico de atribuição é =.
<? $var += 5; // Soma 5 em $var; $var -= 5; // Subtrai 5 em $var; $var *=5; // Multiplica $var por 5; $var /= 5; // Divide $var por 5; ?>
Operadores Descrição ++$a Pré-incremento. Incrementa $a em um e, então, retorna $a. $a++ Pós-incremento. Retorna $a e, então, incrementa $a em um. --$a Pré-decremento. Decrementa $a em um e, então, retorna $a. $a-- Pós-decremento. Retorna $a e, então, decrementa $a em um.
1.7.2] Aritméticos
Operadores aritméticos são utilizados para realização de cálculos matemáticos.
Operadores Descrição + Adição. - Subtração. * Multiplicação. / Divisão. % Módulo (resto da divisão).
1.7.3] Relacionais
Operadores relacionais são utilizados para realizar comparações entre valores ou expressões, resultando sempre um valor boolean (TRUE ou FALSE).
Comparadores Descrição
== Igual. Resulta (TRUE) se expressões forem iguais.
=== Idêntico. TRUE se iguais e mesmo tipo.
!= ou <> Diferente. TRUE se forem diferentes.
< Menor.
> Maior que.
<= Menor ou igual.
>= Maior ou igual.
Veja a seguir alguns testes lógicos e seus respectivos resultados. No primeiro caso, vemos a utilização errada do operador de atribuição “=” para realizar uma comparação: o operador sempre retorna o valor atribuído.
<?
if ($a = 5)
{
echo 'essa operação atribui 5 à variável $a e retorna verdadeiro';
}
?>
1.7.4] Lógicos
Operadores lógicos são utilizados para combinar expressões lógicas entre si, agrupando testes condicionais.
Operador Descrição
($a and $b) E: TRUE se tanto $a quanto $b forem verdadeiros.
($a or $b) OU: TRUE se $a ou $b forem verdadeiros.
($a xor $b) XOR: TRUE se $a ou $b forem verdadeiros, exclusivo.
(! $a) NOT: TRUE se $a for FALSE.
($a && $b) E: TRUE se tanto $a quanto $b forem verdadeiros.
($a || $b) OU: TRUE se $a ou $b forem verdadeiros.
Observação: or e and têm precedência maior que && ou ||.
No programa a seguir, se as variáveis $vai_chover e $esta_frio forem verdadeiras ao mesmo tempo, será impresso no console “Não vou sair de casa”.
<?
$vai_chover = TRUE;
$esta_frio = TRUE;
if ($vai_chover and $esta_frio)
{
echo "Não vou sair de casa";
}
?>
1.8] Estruturas de Controle
1.8.1] IF
O IF é uma estrutura de controle que introduz um desvio condicional, ou seja, um desvio na execução natural do programa. Caso a condição dada pela expressão seja satisfeita, então serão executadas as instruções do bloco de comandos. Caso a condição não seja satisfeita, o bloco de comandos será simplesmente ignorado. O comando IF pode ser lido como “SE (expressão) ENTÃO { comandos... }”.
ELSE é utilizado para indicar um novo bloco de comandos delimitado por { }, caso a condição do IF não seja satisfeita. Pode ser lido como “caso contrário” A utilização do ELSE é opcional.
<?
$a = 1;
if ($a==5)
{
echo "é igual";
}
else
{
echo "não é igual";
}
?>
1.8.2] While
While é uma estrutura de controle que estabelece um laço de repetição. Semelhante ao IF possui uma condição, na qual repete um determinado bloco enquanto a condição for verdadeira.
<?
$a = 1;
while ($a < 5)
{
print $a;
$a ++;
}
?>
1.8.3] For
For é uma estrutura de controle parecida com While, na qual repete um bloco por um determinado periodo de vezes.
<?
for ($i = 1; $i <= 10; $i++)
{
print $i;
}
?>
1.8.4] Switch
O comando Switch é muito similar ao IF, a diferença é que possibilita fazer diversos testes, executando ações diferentes.
<?
$i = 1;
switch ($i)
{
case 0:
print "i é igual a 0";
break;
case 1:
print "i é igual a 1";
break;
case 2:
print "i é igual a 2";
break;
default:
print "i não é igual a 0, 1 ou 2";
}
?>
1.8.5] Foreach
O foreach é um laço de repetição para iterações em arrays ou matrizes. É um FOR simplificado que decompõe um vetor ou matriz em cada um de seus elementos por meio de sua cláusula AS.
<?
$fruta = array("Abacate", "Abacaxi", "Ameixa", "Amora");
foreach ($fruta as $valor)
{
print "$valor -";
}
// Resultado: Abacate - Abacaxi - Ameixa - Amora
?>
1.9] Requisição de Arquivos
Em linguagens de script como o PHP, freqüentemente precisamos incluir dentro de nossos programas outros arquivos com definições de funções, constantes, configura- ções, ou mesmo carregar um arquivo contendo a definição de uma classe. Para atingir este objetivo no PHP, podemos fazer uso de um dos seguintes comandos:
1.9.1] Include
O comando include, inclui um determinado arquivo, executando seus códigos como se estivesse no programa principal. Caso o arquivo não exista, aparecerá um warning mas o programa continua sua execução.
<?
/*
* Arquivo quadrado.php
* função quadrado
* retorna o quadrado de um número
*/
function quadrado($numero)
{
return $numero * $numero;
}
?>
<? // Arquivo teste.php // carrega arquivo com a função necessária include 'biblioteca.php'; // imprime o quadrado do número 4 echo quadrado(4); // Resultado: 16 ?>
1.9.2] Require
Require é como o Include, a única diferença é que se o arquivo não existir, ele produz um erro fatal, parando a execução de todo programa. Também temos os comandos include_once e require_once - Fazem a mesma coisa que include e require porém só inclui o arquivo se ele não tiver sido incluido anteriormente.
2.0] Funções
Uma função é um pedaço de código com um objetivo específico, encapsulado sob uma estrutura única que recebe um conjunto de parâmetros e retorna um dado. Uma função é declarada uma única vez, mas pode ser utilizada diversas vezes. É uma das estruturas mais básicas para prover reusabilidade.
2.1.1] Criando uma Função
Para declararmos uma função, devemos utilizar o operador function, seguido do nome que desejamos dar a função e atribuindo a opção de parametros separados por vírgulas. No final utilizamos return para retornar o resultado da função.
function quadrado($numero)
{
return $numero * $numero;
}
echo quadrado(4);
?>
2.1.2] Variáveis globais
Ao declarmos variáveis dentro de funções, elas tornam-se a ser locais, não permitindo acesso fora da função. Caso desejar acessar essas variáveis fora da função deve-se declara-la como global.
2.1.3] Recursão
Podemos fazer uma chamada de função recursiva, fazendo ela chamar ela mesma diversas vezes.
<?
function Fatorial($numero)
{
if ($numero == 1)
return $numero;
else
return $numero * Fatorial($numero -1);
}
echo Fatorial(5); // Resultado: 120
?>
2.2] Manipulando Arquivos e Diretórios
A seguir veremos diversas funções do PHP para manipular arquivos e diretórios, leitura, escrita e fechamento.
2.2.1] Fopen
A função nativa do PHP fopen, abre um arquivo e retorna um identificador.
<?
$fp = fopen ("/home/xalexandre/arquivo.txt", "w");
?>
Podemos utilizar feof para testar se um determinado identificador criado por fopen está no final do arquivo. Com a função fgets efetuamos a leitura linha por linha de um arquivo, até que fclose fecha a abertura do arquivo. Observe o exemplo:
<?
$fd = fopen ("/home/xalexandre/arquivo.txt", "r");
while (!feof ($fd))
{
// lê uma linha do arquivo
$buffer = fgets($fd, 4096);
// imprime a linha.
echo $buffer;
}
fclose ($fd);
?>
2.2.2] Fwrite
A função fwrite grava um determinado conteúdo apontado pelo identificador de fopen.
<?
// abre o arquivo
$fp = fopen ("/home/xalexandre/arquivo.txt", "w");
// escreve no arquivo
fwrite ($fp, "linha 1\n");
fwrite ($fp, "linha 2\n");
fwrite ($fp, "linha 3\n");
// fecha o arquivo
fclose ($fp);
?>
2.2.3] File
A função file é bastante semelhante a fopen, a diferença é que retorna um array com todo conteúdo de um arquivo, sendo que cada posição do array é uma linha do arquivo.
<?
// lê o arquivo para o array $arquivo
$arquivo = file ("/home/xalexandre/arquivo.txt");
// exibe o conteúdo
echo $arquivo[0]; // Resultado: linha 1
echo $arquivo[1]; // Resultado: linha 2
echo $arquivo[2]; // Resultado: linha 3
?>
2.2.4] Realiza a copia exata de um determinado arquivo para outro local/nome.
<?
$origem = "/home/xalexandre/arquivo.txt";
$destino = "/home/xalexandre/arquivo2.txt";
if (copy($origem, $destino))
{
echo "Cópia efetuada";
}
else
{
echo "Cópia não efetuada";
}
?>
2.2.5] Unlink
A função unlink apaga um determinado arquivo.
<?
$arquivo = "/home/xalexandre/arquivo2.txt";
if (unlink($arquivo))
{
echo "Arquivo apagado";
}
else
{
echo "Arquivo não apagado";
}
//resultado: Arquivo apagado
?>
2.2.6] File_exists
A função file_exists verifica se um determinado arquivo ou diretório existe.
<?
$arquivo = '/home/xalexandre/arquivo2.txt';
if (file_exists($arquivo))
{
echo "Arquivo existente";
}
else
{
echo "Arquivo não existente";
}
//resultado: Arquivo não existe
?>
2.2.7] mkdir
mkdir cria um diretório.
<?
$dir = '/tmp/diretorio';
if (mkdir($dir, 0777))
{
echo "$dir criado com sucesso";
}
else
{
echo "$dir não criado";
}
//Resultado: /tmp/diretorio criado com sucesso
?>
Por hoje é isso!
Logo logo chegaremos a nosso objetivo: Orientar Objetos! Aguardem!
Voltaremos...
