PHP - Avançado PDF
PHP - Avançado PDF
Projeto Supervisionado
Tutorial da linguagem PHP
por Maurcio Vivas de Souza Barreto
[email protected]
[email protected]
Professor Orientador:
Giovanny Lucero
UNIVERSIDADE FEDERAL DE SERGIPE
CENTRO DE CINCIAS EXATAS E TECNOLOGIA
DEPARTAMENTO DE ESTATSTICA E INFORMTICA
________________________________________
Professor Giovanny Lucero
________________________________________
Professora Ana Rosimere
________________________________________
Professor Leonardo Nogueira Matos
2
Agradecimentos
3
ndice
NDICE..............................................................................................................................5
1. INTRODUO.............................................................................................................7
O QUE PHP?.........................................................................................7
O QUE PODE SER FEITO COM PHP?.........................................................7
COMO SURGIU A LINGUAGEM PHP?........................................................7
2. SINTAXE BSICA.......................................................................................................8
DELIMITANDO O CDIGO PHP.................................................................8
SEPARADOR DE INSTRUES...................................................................9
NOMES DE VARIVEIS..............................................................................9
COMENTRIOS.........................................................................................9
Comentrios de uma linha:................................................................9
Comentrios de mais de uma linha:...................................................9
3. CRIANDO OS PRIMEIROS SCRIPTS...................................................................11
PRIMEIRO EXEMPLO..............................................................................11
UTILIZANDO FORMULRIOS HTML......................................................13
INTERAGINDO COM O BROWSER............................................................14
ACESSANDO BANCOS DE DADOS..........................................................16
Conexo com o servidor...................................................................16
Seleo do banco de dados...............................................................16
Execuo de queries SQL.................................................................17
Tratamento de resultados de query SELECT....................................18
4. TIPOS..........................................................................................................................21
TIPOS SUPORTADOS...............................................................................21
Inteiros (integer ou long)..................................................................21
Nmeros em Ponto Flutuante (double ou float)...............................22
Strings...............................................................................................22
Arrays...............................................................................................24
Listas..............................................................................................................................25
Objetos..............................................................................................26
Booleanos.........................................................................................26
TRANSFORMAO DE TIPOS..................................................................26
Coeres...........................................................................................26
Transformao explcita de tipos.....................................................28
Com a funo settype........................................................................28
5. CONSTANTES............................................................................................................30
CONSTANTES PR-DEFINIDAS................................................................30
DEFININDO CONSTANTES.......................................................................30
6. OPERADORES...........................................................................................................31
ARITMTICOS.........................................................................................31
DE STRINGS............................................................................................31
DE ATRIBUIO......................................................................................31
BIT A BIT................................................................................................32
LGICOS................................................................................................32
4
COMPARAO........................................................................................32
EXPRESSO CONDICIONAL.....................................................................33
DE INCREMENTO E DECREMENTO...........................................................33
ORDEM DE PRECEDNCIA DOS OPERADORES.........................................34
7. ESTRUTURAS DE CONTROLE.............................................................................35
BLOCOS.................................................................................................35
COMANDOS DE SELEO.......................................................................35
if........................................................................................................36
switch................................................................................................39
COMANDOS DE REPETIO....................................................................41
while.................................................................................................41
do... while.........................................................................................42
for.....................................................................................................43
QUEBRA DE FLUXO................................................................................45
Break.................................................................................................45
Continue...........................................................................................45
8. FUNES...................................................................................................................47
DEFININDO FUNES.............................................................................47
VALOR DE RETORNO..............................................................................47
ARGUMENTOS........................................................................................47
Passagem de parmetros por referncia..........................................48
Argumentos com valores pr-definidos (default)..............................49
CONTEXTO.............................................................................................50
ESCOPO..................................................................................................50
9. VARIVEIS.................................................................................................................53
O MODIFICADOR STATIC.........................................................................53
VARIVEIS VARIVEIS..........................................................................54
VARIVEIS ENVIADAS PELO NAVEGADOR..............................................54
URLencode.......................................................................................54
VARIVEIS DE AMBIENTE......................................................................55
VERIFICANDO O TIPO DE UMA VARIVEL..............................................55
Funo que retorna o tipo da varivel.............................................55
Funes que testam o tipo da varivel.............................................56
DESTRUINDO UMA VARIVEL................................................................56
VERIFICANDO SE UMA VARIVEL POSSUI UM VALOR............................57
A funo isset....................................................................................57
A funo empty.................................................................................57
10. CLASSES E OBJETOS............................................................................................58
CLASSE..................................................................................................58
OBJETO..................................................................................................58
A VARIVEL $THIS.................................................................................58
SUBCLASSES..........................................................................................59
CONSTRUTORES.....................................................................................60
12. CONCLUSES.........................................................................................................62
13. BIBLIOGRAFIA E REFERNCIAS.....................................................................63
APNDICE 01 - FUNES PARA TRATAMENTO DE STRINGS........................64
5
FUNES RELACIONADAS A HTML......................................................64
htmlspecialchars...............................................................................64
htmlentities.......................................................................................64
nl2br.................................................................................................64
get_meta_tags...................................................................................65
strip_tags..........................................................................................66
urlencode..........................................................................................66
urldecode..........................................................................................67
FUNES RELACIONADAS A ARRAYS.....................................................67
Implode e join...................................................................................67
split...................................................................................................67
explode..............................................................................................68
COMPARAES ENTRE STRINGS.............................................................68
similar_text.......................................................................................68
strcasecmp........................................................................................69
strcmp...............................................................................................69
strstr..................................................................................................69
stristr.................................................................................................70
strpos................................................................................................70
strrpos...............................................................................................70
FUNES PARA EDIO DE STRINGS......................................................70
chop..................................................................................................70
ltrim..................................................................................................71
trim...................................................................................................71
strrev.................................................................................................71
strtolower..........................................................................................72
strtoupper.........................................................................................72
ucfirst................................................................................................73
ucwords.............................................................................................73
str_replace........................................................................................74
FUNES DIVERSAS...............................................................................74
chr.....................................................................................................74
ord ....................................................................................................74
echo ..................................................................................................74
print .................................................................................................75
strlen ................................................................................................75
APNDICE 02 - FUNES PARA TRATAMENTO DE ARRAYS.........................76
FUNES GENRICAS............................................................................76
Array.................................................................................................76
range.................................................................................................77
shuffle...............................................................................................77
sizeof.................................................................................................77
FUNES DE NAVEGAO..................................................................77
reset...................................................................................................78
end....................................................................................................78
next...................................................................................................78
prev...................................................................................................78
pos.....................................................................................................78
key.....................................................................................................79
each...................................................................................................79
6
FUNES DE ORDENAO.....................................................................79
sort....................................................................................................80
rsort..................................................................................................80
asort..................................................................................................80
arsort................................................................................................80
ksort..................................................................................................80
usort..................................................................................................81
uasort................................................................................................81
uksort................................................................................................81
7
Resumo
8
1. Introduo
O que PHP?
Basicamente, qualquer coisa que pode ser feita por algum programa CGI
pode ser feita tambm com PHP, como coletar dados de um formulrio, gerar pginas
dinamicamente ou enviar e receber cookies.
PHP tambm tem como uma das caractersticas mais importantes o
suporte a um grande nmero de bancos de dados, como dBase, Interbase, mSQL,
mySQL, Oracle, Sybase, PostgreSQL e vrios outros. Construir uma pgina baseada em
um banco de dados torna-se uma tarefa extremamente simples com PHP.
Alm disso, PHP tem suporte a outros servios atravs de protocolos
como IMAP, SNMP, NNTP, POP3 e, logicamente, HTTP. Ainda possvel abrir sockets
e interagir com outros protocolos.
Como surgiu a linguagem PHP?
<?php
comandos
?>
<script language=php>
comandos
</script>
<?
comandos
?>
<%
comandos
%>
Separador de instrues
Toda varivel em PHP tem seu nome composto pelo caracter $ e uma
string, que deve iniciar por uma letra ou o caracter _. PHP case sensitive, ou seja,
as variveis $vivas e $VIVAS so diferentes. Por isso preciso ter muito cuidado ao
definir os nomes das variveis. bom evitar os nomes em maisculas, pois como
veremos mais adiante, o PHP j possui alguma variveis pr-definidas cujos nomes so
formados por letras maisculas.
Comentrios
Exemplo:
<? echo teste; #isto um teste ?>
<? echo teste; //este teste similar ao anterior ?>
<?
echo teste; /* Isto um comentrio com mais
de uma linha, mas no funciona corretamente ?>
*/
<?
echo teste; /* Isto um comentrio com mais
de uma linha que funciona corretamente
*/
?>
3. Criando os primeiros scripts
Primeiro Exemplo
Neste exemplo, criaremos um script com uma sada simples, que servir
para testar se a instalao foi feita corretamente:
<html>
<head><title>Aprendendo PHP</title></head>
<body>
<?php
echo "Primeiro Script";
?>
</body>
</html>
<html>
<head><title>Aprendendo PHP</title></head>
<body>
Primeiro Script
</body>
</html>
<?php
$texto = "Primeiro Script";
echo $texto;
?>
</body>
</html>
<html>
<head><title>Aprendendo PHP</title></head>
<body>
<?php
if ($texto != "")
echo "Voc digitou \"$texto\"<br><br>";
?>
</body>
</html>
</body>
</html>
figura 03 figura 04
<html>
<head><title>Aprendendo PHP</title></head>
<body>
<?
if (strpos($HTTP_USER_AGENT,"MSIE 5") != 0) {
echo "Voc usa Internet Explorer";
} else {
echo "Voc no usa Internet Explorer";
}
?>
</body>
</html>
mysql_select_db(ged, $conexao);
mysql_query($cria, $conexao);
Agora vejamos como ficou o cdigo completo para executar uma query
SQL numa base de dados mySQL, com um exemplo que cria uma tabela chamada
exemplo e adiciona alguns dados:
mysql_query($cria, $conexao);
mysql_query($insere1, $conexao);
mysql_query($insere2, $conexao);
mysql_query($insere3, $conexao);
mysql_query($insere4, $conexao);
Tipos Suportados
$vivas = 1.234;
$vivas = 23e4; # equivale a 230.000
Strings
a) utilizando aspas simples ( ' ) Desta maneira, o valor da varivel ser exatamente o
texto contido entre as aspas (com exceo de \\ e \' ver tabela abaixo)
b) utilizando aspas duplas ( " ) Desta maneira, qualquer varivel ou caracter de
escape ser expandido antes de ser atribudo.
Exemplo:
<?
$teste = "Mauricio";
$vivas = '---$teste--\n';
echo "$vivas";
?>
A sada desse script ser "---$teste--\n".
<?
$teste = "Mauricio";
$vivas = "---$teste---\n";
echo "$vivas";
?>
Sintax
e
Significado
\n Nova linha
Aspa dupla
Arrays
<?
$cor = array(1 => vermelho, 2 => verde, 3 => azul,
teste => 1);
?>
Listas
Exemplo:
$arr = array(1=>um,3=>tres,a=>letraA,2=>dois);
list($a,$b,$c,$d) = $arr;
Objetos
Um objeto pode ser inicializado utilizando o comando new para instanciar
uma classe para uma varivel.
Exemplo:
class teste {
function nada() {
echo nada;
}
}
Booleanos
Transformao de tipos
Coeres
Exemplo:
$vivas = 1; // $vivas a string 1
$vivas = $vivas + 1; // $vivas o integer 2
$vivas = $vivas + 3.7;// $vivas o double 5.7
$vivas = 1 + 1.5 // $vivas o double 2.5
Exemplos:
$vivas = 1 + 10.5; // $vivas == 11.5
$vivas = 1 + -1.3e3; // $vivas == -1299
$vivas = 1 + teste10.5; // $vivas == 1
$vivas = 1 + 10testes; // $vivas == 11
$vivas = 1 + " 10testes"; // $vivas == 11
$vivas = 1 + "+ 10testes"; // $vivas == 1
Exemplo:
$vivas = 15; // $vivas integer
settype($vivas,double) // $vivas double
5. Constantes
Constantes pr-definidas
Definindo constantes
Aritmticos
+ adio
- subtrao
mdulo
de strings
. concatenao
de atribuio
.=
Exemplo:
$a = 7;
$a += 2; // $a passa a conter o valor 9
bit a bit
& e lgico
| ou lgico
shift right
>>
Lgicos
Utilizados para inteiros representando valores booleanos
and e lgico
or ou lgico
ou lgico
||
Comparao
As comparaes so feitas entre os valores contidos nas variveis, e no
as referncias. Sempre retornam um valor booleano.
== igual a
!= diferente de
maior ou igual a
>=
Expresso condicional
(expressao1)?(expressao2):( expressao3)
de incremento e decremento
++ incremento
-- decremento
Exemplos:
2.
7. Estruturas de Controle
Blocos
Um bloco consiste de vrios comandos agrupados com o objetivo de
relacion-los com determinado comando ou funo. Em comandos como if, for,
while, switch e em declaraes de funes blocos podem ser utilizados para permitir
que um comando faa parte do contexto desejado. Blocos em PHP so delimitados pelos
caracteres { e }. A utilizao dos delimitadores de bloco em uma parte qualquer do
cdigo no relacionada com os comandos citados ou funes no produzir efeito
algum, e ser tratada normalmente pelo interpretador.
Exemplo:
if ($x == $y)
comando1;
comando2;
if ($x == $y){
comando1;
comando2;
}
Comandos de seleo
if (expresso)
comando;
if (expresso):
comando;
. . .
comando;
endif;
if (expresso)
comando;
else
comando;
if (expresso):
comando;
. . .
comando;
else
comando;
. . .
comando;
endif;
if (expressao1)
comando1;
else
if (expressao2)
comando2;
else
if (expressao3)
comando3;
else
comando4;
O comando elseif tambm pode ser utilizado com dois tipos de sintaxe.
Em resumo, a sintaxe geral do comando if fica das seguintes maneiras:
if (expressao1)
comando;
[ elseif (expressao2)
comando; ]
[ else
comando; ]
if (expressao1) :
comando;
. . .
comando;
[ elseif (expressao2)
comando;
. . .
comando; ]
[ else
comando;
. . .
comando; ]
endif;
switch
if ($i == 0)
print i igual a zero;
elseif ($i == 1)
print i igual a um;
elseif ($i == 2)
print i igual a dois;
switch ($i) {
case 0:
print i igual a zero;
break;
case 1:
print i igual a um;
break;
case 2:
print i igual a dois;
break;
}
importante compreender o funcionamento do switch para no cometer
enganos. O comando switch testa linha a linha os cases encontrados, e a partir do
momento que encontra um valor igual ao da varivel testada, passa a executar todos os
comandos seguintes, mesmo os que fazem parte de outro teste, at o fim do bloco. por
isso usa-se o comando break, quebrando o fluxo e fazendo com que o cdigo seja
executado da maneira desejada. Veremos mais sobre o break mais adiante. Veja o
exemplo:
switch ($i) {
case 0:
print i igual a zero;
case 1:
print i igual a um;
case 2:
print i igual a dois;
}
switch ($s) {
case casa:
print A casa amarela;
case arvore:
print a rvore bonita;
case lampada:
print joao apagou a lampada;
}
comandos de repetio
while
O while o comando de repetio (lao) mais simples. Ele testa uma
condio e executa um comando, ou um bloco de comandos, at que a condio testada
seja falsa. Assim como o if, o while tambm possui duas sintaxes alternativas:
while (<expressao>)
<comando>;
while (<expressao>):
<comando>;
. . .
<comando>;
endwhile;
do... while
do {
<comando>
. . .
<comando>
} while (<expressao>);
O exemplo utilizado para ilustrar o uso do while pode ser feito da
seguinte maneira utilizando o do.. while:
$i = 0;
do {
print ++$i;
} while ($i < 10);
for
for (<inicializacao>;<condicao>;<incremento>)
<comando>;
for (<inicializacao>;<condicao>;<incremento>) :
<comando>;
. . .
<comando>;
endfor;
Quebra de fluxo
Break
O comando break pode ser utilizado em laos de do, for e while,
alm do uso j visto no comando switch. Ao encontrar um break dentro de um
desses laos, o interpretador PHP para imediatamente a execuo do lao, seguindo
normalmente o fluxo do script.
while ($x > 0) {
...
if ($x == 20) {
echo erro! x = 20;
break;
...
}
No trecho de cdigo acima, o lao while tem uma condio para seu
trmino normal ($x <= 0), mas foi utilizado o break para o caso de um trmino no
previsto no incio do lao. Assim o interpretador seguir para o comando seguinte ao
lao.
Continue
Definindo funes
Valor de retorno
Exemplo:
function imprime($texto){
echo $texto;
}
imprime(teste de funes);
Exemplo:
function mais5($numero) {
$numero += 5;
}
$a = 3;
mais5($a); //$a continua valendo 3
$a = $b = 1;
mais5($a, $b); /* Neste caso, s $num1 ter seu valor
alterado, pois a passagem por referncia est definida na
declarao da funo. */
teste2(azul);
Contexto
O contexto o conjunto de variveis e seus respectivos valores num
determinado ponto do programa. Na chamada de uma funo, ao iniciar a execuo do
bloco que contm a implementao da mesma criado um novo contexto, contendo as
variveis declaradas dentro do bloco, ou seja, todas as variveis utilizadas dentro
daquele bloco sero eliminadas ao trmino da execuo da funo.
Escopo
O escopo de uma varivel em PHP define a poro do programa onde ela
pode ser utilizada. Na maioria dos casos todas as variveis tm escopo global.
Entretanto, em funes definidas pelo usurio um escopo local criado. Uma varivel
de escopo global no pode ser utilizada no interior de uma funo sem que haja uma
declarao.
Exemplo:
$vivas = Testando;
function Teste() {
echo $vivas;
}
Teste();
function Teste() {
global $vivas;
echo $vivas;
}
Teste();
Exemplo:
$vivas = "Testando";
function Teste() {
echo $GLOBALS["vivas"]; // imprime $vivas
echo $vivas; // no imprime nada
}
Teste();
9. Variveis
O modificador static
Uma varivel esttica visvel num escopo local, mas ela inicializada
apenas uma vez e seu valor no perdido quando a execuo do script deixa esse
escopo. Veja o seguinte exemplo:
function Teste() {
$a = 0;
echo $a;
$a++;
}
function Teste() {
static $a = 0;
echo $a;
$a++;
}
Variveis Variveis
$a = teste;
$teste = Mauricio Vivas;
Para interagir com a navegao feita pelo usurio, necessrio que o PHP
possa enviar e receber informaes para o software de navegao. A maneira de enviar
informaes, como j foi visto anteriormente, geralmente atravs de um comando de
impresso, como o echo. Para receber informaes vindas do navegador atravs de um
link ou um formulrio html o PHP utiliza as informaes enviadas atravs da URL. Por
exemplo: se seu script php est localizado em http://localhost/teste.php3 e
voc o chama com a url http://localhost/teste.php3?vivas=teste,
automaticamente o PHP criar uma varivel com o nome $vivas contendo a string
teste. Note que o contedo da varivel est no formato urlencode. Os formulrios
html j enviam informaes automaticamente nesse formato, e o PHP decodifica sem
necessitar de tratamento pelo programador.
URLencode
O PHP possui duas funes para tratar com texto em urlencode. Seguem
suas sintaxes:
Variveis de ambiente
A palavra mixed indica que a varivel var pode ser de diversos tipos.
A funo gettype pode retornar as seguintes strings: integer,
double, string, array, object e unknown type.
Existem dois tipos de teste que podem ser feitos para verificar se uma
varivel est setada: com a funo isset e com a funo empty.
A funo isset
E retorna true se a varivel estiver setada (ainda que com uma string
vazia ou o valor zero), e false em caso contrrio.
A funo empty
Classe
Uma classe um conjunto de variveis e funes relacionadas a essas
variveis. Uma vantagem da utilizao poder usufruir do recurso de encapsulamento
de informao. Com o encapsulamento o usurio de uma classe no precisa saber como
ela implementada, bastando para a utilizao conhecer a interface, ou seja, as funes
disponveis. Uma classe um tipo, e portanto no pode ser atribuda a uma varivel.
Para definir uma classe, deve-se utilizar a seguinte sintaxe:
class Nome_da_classe {
var $variavel1;
var $variavel2;
function funcao1 ($parametro) {
/* === corpo da funo === */
}
}
Objeto
Como foi dito anteriormente, classes so tipos, e no podem ser atribudas
a variveis. Variveis do tipo de uma classe so chamadas de objetos, e devem ser
criadas utilizando o operador new, seguindo o exemplo abaixo:
A varivel $this
Na definio de uma classe, pode-se utilizar a varivel $this, que o
prprio objeto. Assim, quando uma classe instanciada em um objeto, e uma funo
desse objeto na definio da classe utiliza a varivel $this, essa varivel significa o
objeto que estamos utilizando.
Como exemplo da utilizao de classes e objetos, podemos utilizar a
classe conta, que define uma conta bancria bastante simples, com funes para ver
saldo e fazer um crdito.
class conta {
var $saldo;
function saldo() {
return $this->saldo;
}
function credito($valor) {
$this->saldo += $valor;
}
}
SubClasses
Uma classe pode ser uma extenso de outra. Isso significa que ela herdar
todas as variveis e funes da outra classe, e ainda ter as que forem adicionadas pelo
programador. Em PHP no permitido utilizar herana mltipla, ou seja, uma classe
pode ser extenso de apenas uma outra.Para criar uma classe extendida, ou derivada de
outra, deve ser utilizada a palavra reservada extends, como pode ser visto no exemplo
seguinte:
Construtores
Um construtor uma funo definida na classe que automaticamente
chamada no momento em que a classe instanciada (atravs do operador new). O
construtor deve ter o mesmo nome que a classe a que pertence. Veja o exemplo:
class conta {
var $saldo;
function conta () {
$this.saldo = 0;
}
function saldo() {
return $this->saldo;
}
function credito($valor) {
$this->saldo += $valor;
}
}
htmlspecialchars
string htmlspecialchars(string str);
htmlentities
string htmlentities(string str);
nl2br
string nl2br(string str);
Exemplo:
echo nl2br(Mauricio\nVivas\n);
Imprime:
Maurcio<br>Vivas<br>
get_meta_tags
array get_meta_tags(string arquivo);
Exemplo:
No arquivo teste.html temos:
...
<head>
<meta name="author" content="jose">
<meta name="tags" content="php3 documentation">
...
</head><!-- busca encerra aqui -->
...
a execuo da funo:
get_meta_tags(teste.html);
retorna o array:
array(author=>jose,tags=>"php3 documentation");
strip_tags
string strip_tags(string str);
urlencode
string urlencode(string str);
Implode e join
string implode(string separador, array partes);
string join(string separador, array partes);
Exemplo:
$partes = array("a", "casa nmero", 13, " azul");
$inteiro = join(" ",$partes);
split
array split(string padrao, string str, int [limite]);
Exemplo:
$data = 11/14/1975;
$data_array = split(/,$data);
similar_text
int similar_text(string str1, string str2, double
[porcentagem]);
Exemplo:
strcasecmp
int strcasecmp(string str1, string str2);
strcmp
int strcasecmp(string str1, string str2);
Funciona de maneira semelhante funo strcasecmp, com a diferena
que esta case sensitive, ou seja, maisculas e minsculas so tratadas como diferentes.
strstr
string strstr(string str1, string str2);
string strchr(string str1, string str2);
Exemplo:
stristr
string strstr(string str1, string str2);
strpos
int strpos(string str1, string str2, int [offset] );
strrpos
int strrpos(string haystack, char needle);
chop
string chop(string str);
Exemplo:
chop( Teste \n \n ); // retorna Teste
ltrim
string ltrim(string str);
Exemplo:
ltrim( Teste \n \n ); // retorna Teste \n \n
trim
string trim(string str);
Exemplo:
trim( Teste \n \n ); // retorna Teste
strrev
string strrev(string str);
Exemplo:
Exemplo:
strtoupper
string strtoupper(string str);
Exemplo:
ucfirst
string ucfirst(string str);
Exemplo:
ucwords
string ucwords(string str);
Exemplo:
ucwords(teste de funcao); // retorna Teste De Funcao
str_replace
string str_replace(string str1, string str2, string
str3);
Funes diversas
chr
string chr(int ascii);
ord
int ord(string string);
echo
echo(string arg1, string [argn]... );
print
print(string arg);
Imprime o argumento fornecido.
strlen
int strlen(string str);
Funes Genricas
Array
array array(...);
Exemplo 1
$teste = array("um",
"dois","tr"=>"tres",5=>"quatro","cinco");
Exemplo 2
$teste = array("um",
6=>"dois","tr"=>"tres",5=>"quatro","cinco");
shuffle
void shuffle(array &arr);
sizeof
int sizeof(array arr);
Funes de navegao
Toda varivel do tipo array possui um ponteiro interno indicando o
prximo elemento a ser acessado no caso de no ser especificado um ndice. As funes
seguintes servem para modificar esse ponteiro, permitindo assim percorrer um array
para verificar seu contedo (chaves e elementos).
reset
mixed reset(array arr);
next
mixed next(array arr);
prev
mixed prev(array arr);
pos
mixed pos(array arr);
key
mixed key(array arr);
Exemplo:
Funes de ordenao
So funes que servem para arrumar os elementos de um array de acordo
com determinados critrios. Estes critrios so: manuteno ou no da associao entre
ndices e elementos; ordenao por elementos ou por ndices; funo de comparao
entre dois elementos.
sort
void sort(array &arr);
asort
void asort(array &arr);
arsort
void arsort(array &arr);
ksort
void ksort(array &arr);
usort
void usort(array &arr, function compara);
Esta uma funo que utiliza outra funo como parmetro. Ordena os
elementos de um array sem manter os relacionamentos com os ndices, e utiliza para
efeito de comparao uma funo definida pelo usurio, que deve comparar dois
elementos do array e retornar 0, 1 ou 1, de acordo com qualquer critrio estabelecido
pelo usurio.
uasort
void uasort(array &arr, function compara);
uksort
void uksort(array &arr, function compara);