Você está na página 1de 91

Apostila de PHP

Apostila desenvolvida por Bruno Rodrigues Siqueira( bruno@netfly.com.br )


ndice
1. Introduo
O que PHP?
PHP significa Hyperte!t Preprocessor. Realmente" o produto foi originalmente
c#amado de $Personal Home Page %ools&' mas como se e!pandiu em escopo" um nome
novo e mais apropriado foi escol#ido por vota()o da comunidade. *oc+ pode utili,ar
qualquer e!tens)o que dese-ar para designar um arquivo PHP" mas os recomendados
foram .p#p " .p#tml. . PHP est/ atualmente na vers)o 0" c#amado de PHP0 ou"
simplesmente de PHP.
PHP 1 uma linguagem de cria()o de scripts embutida em H%23 no servidor. .s
produtos patenteados nesse nic#o do mercado s)o as Active Server Pages da 2icrosoft" o
4oldfusion da Allaire e as 5ava Server Pages da Sun. PHP 1 6s ve,es c#amado de $o ASP
de c7digo8fonte aberto& porque sua funcionabilidade 1 t)o semel#ante ao produto9conceito"
ou o que quer que se-a" da 2icrosoft.
:!ploraremos a cria()o de script no servidor" mais profundamente" nos pr7!imos
cap;tulos" mas" no momento" voc+ pode pensar no PHP como uma cole()o de supertags de
H%23 que permitem adicionar fun(<es do servidor 6s suas p/ginas da =eb. Por e!emplo"
voc+ pode utili,ar PHP para montar instantaneamente uma comple!a p/gina da =eb ou
desencadear um programa que automaticamente e!ecute o d1bito no cart)o de cr1dito
quando um cliente reali,ar uma compra.
>alando estritamente" o PHP tem pouca rela()o com layout" eventos ou qualquer
coisa relacionada 6 apar+ncia de uma p/gina da =eb. ?e fato" a maior parte do que o PHP
reali,a 1 invis;vel para o usu/rio final. Algu1m visuali,ando uma p/gina de PHP n)o ser/
capa, de di,er que n)o foi escrita em H%23" porque o resultado final do PHP 1 H%23.
. PHP 1 um m7dulo oficial do servidor #ttp Apac#e" o l;der do mercado de
servidores =eb livres que constitui apro!imadamente @@ por cento da =orld =ide =eb.
Asso significa que o mecanismo de script do PHP pode ser constru;do no pr7prio servidor
=eb" tornando a manipula()o de dados mais r/pida. Assim como o servidor Apac#e" o PHP
1 compat;vel com v/rias plataformas" o que significa que ele e!ecuta em seu formato
original em v/rias vers<es do BCAD e do =indoEs. %odos os pro-etos sob a 1gide da
Apac#e SoftEare >oundation F incluindo o PHP F s)o softEare de c7digo8fonte aberto.
As v/rias vers<es do PHP foram aclamadas e premiadas nos Gltimos anos. . PHPH
foi o finalista em IJJJ no 3inu!=orld :ditorKs 4#oice AEards (na categoria de
biblioteca9ferramentas de programa()o) e gan#ou o segundo lugar" perdendo s7 para o
4old>usion" em IJJL no 4net Builder.com Product AEards (na categoria de mel#or
ferramenta de script de servidor F eles deram bastante importMncia ao A?:)" ao passo que a
combina()o PHPH92ySN3 gan#ou pr+mio de banco de dados do ano no =ebJL. Cada mau
para um softEare sem rela(<es pGblicas" sem publicidade e sem uma significativa
e!posi()o na m;dia.
Histria do PHP
Rasmus 3erdorf F engen#eiro de softEare" membro da equipe Apac#e e o #omem
misterioso do ano F 1 o criador e a for(a motri, original por tr/s do PHP. A primeira parte
do PHP foi desenvolvida para utili,a()o pessoal no final de IJJ0. %ratava8se de um
Erapper de Perl4OA que o au!iliava a monitorar as pessoas que acessavam o seu site
pessoal. Co ano seguinte" ele montou um pacote c#amado de Personal Home Page %ools
(tamb1m con#ecido como PHP 4onstruction Pit) em resposta 6 demanda de usu/rios que
por acaso ou por relatos falados depararam8se com o seu trabal#o. A vers)o Q foi logo
lan(ada sob o t;tulo de PHP9>A e inclu;a o >orm Anterpreter" uma ferramenta para analisar
sintaticamente consultas de SN3.
:m meados de IJJR" o PHP estava sendo utili,ado mundialmente em
apro!imadamente @S.SSS sites. .bviamente estava se tornando muito grande para uma
Gnica pessoa administrar" mesmo para algu1m concentrado e c#eio de energia como
Rasmus. Agora uma pequena equipe central de desenvolvimento mantin#a o pro-eto sobre o
modelo de $-unta benevolente& do c7digo8fonte aberto" com contribui(<es de
desenvolvedores e usu/rios em todo o mundo. Teev SurasUi e Andi Outmans" dois
programadores israelenses que desenvolveram os analisadores de sinta!e PHPH e PHP0"
tamb1m generali,aram e estenderam seus trabal#os sob a rubrica de Tend.com (Teev" Andi"
Tend" entendeuV).
. quarto trimestre de IJJL iniciou um per;odo de crescimento e!plosivo para o
PHP" quando todas as tecnologias de c7digo8fonte aberto gan#aram uma publicidade
intensa. :m outubro de IJJL" de acordo com a mel#or suposi()o" mais de ISS.SSS
dom;nios Gnicos utili,avam PHP de alguma maneira. Bm ano depois" o PHP quebrou a
marca de um mil#)o de dom;nios. :nquanto escrevo esta apostila" o nGmero e!plodiu para
cerca de dois mil#<es de dom;nios.
O que pode ser feito com PHP?
Basicamente" qualquer coisa que pode ser feita por algum programa 4OA pode ser
feita tamb1m com PHP" como coletar dados de um formul/rio" gerar p/ginas
dinamicamente ou enviar e receber cooUies.
PHP tamb1m tem como uma das caracter;sticas mais importantes o suporte a
um grande nGmero de bancos de dados" como dBase" Anterbase" mSN3" mySN3" .racle"
Sybase" PostgreSN3 e v/rios outros. 4onstruir uma p/gina baseada em um banco de dados
torna8se uma tarefa e!tremamente simples com PHP.
Al1m disso" PHP tem suporte a outros servi(os atrav1s de protocolos como A2AP"
SC2P" CC%P" P.PH e" logicamente" H%%P. Ainda 1 poss;vel abrir socUets e interagir com
outros protocolos.
Tabela comparativa
Custos Comparativos
Item ASP Cold Fusion JSP PHP
?esenvolvimento BSW S F 0LS BSW HJ@ BSW S BSW S
Servidor BSW XQS BSW I.QJ@ BSW S F @J@ BSW S
R?B2S BSW I.QQS 8 0QQS BSW S 8 YIS.SSS BSW S 8 YIS.SSS BSW S
Suporte de incidente BSWS 8 Q0@ BSW S 8 R@ BSW S 8 R@ BSW S
2. Sintaxe Bsica
Delimitando o cdigo PHP
. c7digo PHP fica embutido no pr7prio H%23. . interpretador identifica
quando um c7digo 1 PHP pelas seguintes tags
<?php
comandos
?>
<script language=php>
comandos
</script>
<?
comandos
?>
<%
comandos
%>
. tipo de tags mais utili,ado 1 o terceiro" que consiste em uma $abrevia()o&
do primeiro. Para utili,/8lo" 1 necess/rio #abilitar a op()o s#ort8tags na configura()o do
PHP. . Gltimo tipo serve para facilitar o uso por programadores acostumados 6 sinta!e de
ASP. Para utili,/8lo tamb1m 1 necess/rio #abilit/8lo no arquivo de configura()o do PHP
(p#p.ini)
Separador de instrues
Para cada fim de lin#a de c7digo tem que #aver um ponto e v;rgula"
indicando ao sistema fim de instru()o.
:!emplo.
ZV
ec#o [com ponto e v;rgula[ '
V\
3in#as de comando" de controle" n)o precisam de ponto e v;rgula.
:!emplo.
ZV
if (W! ]] W!)^ 99aqui n)o precisa de ponto e v;rgula
ec#o [com ponto e v;rgula[ ' 99aqui precisa de ponto e v;rgula
_
V\
omes de vari!veis
%oda vari/vel em PHP tem seu nome composto pelo caracter W e uma string"
que deve iniciar por uma letra ou o caracter $`&. PHP 1 case sensitive" ou se-a" as vari/veis
Wp#p e WPHP s)o diferentes. Por isso 1 preciso ter muito cuidado ao definir os nomes das
vari/veis. a bom evitar os nomes em maiGsculas" pois como veremos mais adiante" o PHP
-/ possui alguma vari/veis pr18definidas cu-os nomes s)o formados por letras maiGsculas.
"oment!rios
H/ dois tipos de coment/rios em c7digo PHP
Comentrios de uma linha:
2arca como coment/rio at1 o final da lin#a ou at1 o final do bloco de c7digo
PHP 8 o que vier antes. Pode ser delimitado pelo caracter $b& ou por duas barras ( 99 ).
Exemplo:
<? echo teste; #isto um teste
echo teste; //este teste similar ao anterior
?>
Comentrios de mais de uma linha:
%em como delimitadores os caracteres / para o in;cio do bloco e /
para o final do coment/rio. Se o delimitador de final de c7digo PHP ( ?> ) estiver dentro
de um coment/rio" n)o ser/ recon#ecido pelo interpretador.
Exemplos:
<?
echo teste; / !sto um coment"rio com mais
de uma linha #ue $unciona corretamente
/
?>
3. Tipos
Tipos Suportados
PHP suporta os seguintes tipos de dados
Anteiro
Ponto flutuante
String
Array
.b-eto
PHP utili,a c#ecagem de tipos dinMmica" ou se-a" uma vari/vel pode conter
valores de diferentes tipos em diferentes momentos da e!ecu()o do script. Por este motivo
n)o 1 necess/rio declarar o tipo de uma vari/vel para us/8la. . interpretador PHP decidir/
qual o tipo daquela vari/vel" verificando o conteGdo em tempo de e!ecu()o.
Ainda assim" 1 permitido converter os valores de um tipo para outro
dese-ado" utili,ando o typecasting ou a fun()o sett%pe (ver adiante).
Inteiros (integer ou long)
Bma vari/vel pode conter um valor inteiro com atribui(<es que sigam as seguintes sinta!es
&php = '()*; # inteiro positi+o na ,ase decimal
&php = -()*; # inteiro negati+o na ,ase decimal
&php = .()*; # inteiro na ,ase octal-sim,oli/ado pelo .
# e#ui+ale a '01 decimal
&php = .x)*; # inteiro na ,ase hexadecimal2sim,oli/ado
# pelo .x3 - e#ui+ale a 0( decimal4
A diferen(a entre inteiros simples e long est/ no nGmero de bytes utili,ados para
arma,enar a vari/vel. 4omo a escol#a 1 feita pelo interpretador PHP de maneira transparente para o usu/rio"
podemos afirmar que os tipos s)o iguais.
Nmeros em Ponto Flutuante (double ou float)
Bma vari/vel pode ter um valor em ponto flutuante com atribui(<es que sigam as seguintes
sinta!es
&php = '4()*;
&php = ()e*; # e#ui+ale a ().4...
Strings
Strings podem ser atribu;das de duas maneiras
a) utili,ando aspas simples ( [ ) 8 ?esta maneira" o valor da vari/vel ser/ e!atamente o te!to contido entre as
aspas (com e!ce()o de cc e c[ 8 ver tabela abai!o)
b) utili,ando aspas duplas ( d ) 8 ?esta maneira" qualquer vari/vel ou caracter de escape ser/ e!pandido
antes de ser atribu;do.
Exemplo:
<?
$teste = "Brasil";
$php = '---$teste--\n';
echo "$php";
?>
A sa;da desse script ser/ d888Wteste88cnd.
<?
$teste = "Brasil";
$php = "---$teste---\n";
echo "$php";
?>
A sa;da desse script ser/ d888Brasil88d (com uma quebra de lin#a no final).
A tabela seguinte lista os caracteres de escape
Sintaxe Significado
cn Cova lin#a
cr Retorno de carro (semel#ante a cn)
ct %abula()o #ori,ontal
cc A pr7pria barra ( c )
cW . s;mbolo W
ce Aspa simples
c& Aspa dupla
Arras
Arrays em PHP podem ser observados como mapeamentos ou como vetores inde!ados. 2ais
precisamente" um valor do tipo array 1 um dicion/rio onde os ;ndices s)o as c#aves de acesso. *ale ressaltar
que os ;ndices podem ser valores de qualquer tipo e n)o somente inteiros. Anclusive" se os ;ndices forem todos
inteiros" estes n)o precisam formar um intervalo cont;nuo
4omo a c#ecagem de tipos em PHP 1 dinMmica" valores de tipos diferentes podem ser usados
como ;ndices de array" assim como os valores mapeados tamb1m podem ser de diversos tipos.
Exemplo:
<?
&cor5'6 = +ermelho;
&cor5(6 = +erde;
&cor5)6 = a/ul;
&cor5teste6 = ';
?>
E#ui+alentemente7 pode-se escre+er:
<?
&cor = arra%2' => +ermelho7 ( => +erde7 ) => a/ul7
teste => '3;
?>
#istas
As listas s)o utili,adas em PHP para reali,ar atribui(<es mGltiplas. Atrav1s
de listas 1 poss;vel atribuir valores que est)o num array para vari/veis. *e-amos o e!emplo
Exemplo:
list2&a7 &,7 &c3 = arra%2a7 ,7 c3;
. comando acima atribui valores 6s tr+s vari/veis simultaneamente. a bom
notar que s7 s)o atribu;dos 6s vari/veis da lista os elementos do array que possuem ;ndices
inteiros e n)o negativos. Co e!emplo acima as tr+s atribui(<es foram bem sucedidas porque
ao iniciali,ar um array sem especificar os ;ndices eles passam a ser inteiros" a partir do
,ero. Bm fator importante 1 que cada vari/vel da lista possui um ;ndice inteiro e ordinal"
iniciando com ,ero" que serve para determinar qual valor ser/ atribu;do. Co e!emplo
anterior temos Wa com ;ndice S" Wb com ;ndice I e Wc com ;ndice Q. *e-amos um outro
e!emplo
&arr = arra%2'=>um7)=>tres7a=>letra87(=>dois3;
list2&a7&,7&c7&d3 = &arr;
Ap7s a e!ecu()o do c7digo acima temos os seguintes valores
&a == null
&, == um
&c == dois
&d == tres
?evemos observar que 6 vari/vel Wa n)o foi atribu;do valor" pois no array n)o
e!iste elemento com ;ndice S (,ero). .utro detal#e importante 1 que o valor $tres& foi
atribu;do 6 vari/vel Wd" e n)o a Wb" pois seu ;ndice 1 H" o mesmo que Wd na lista. Por fim"
vemos que o valor $letraA& n)o foi atribu;do a elemento algum da lista" pois seu ;ndice n)o
1 inteiro.
.s ;ndices da lista servem apenas como refer+ncia ao interpretador PHP para
reali,ar as atribui(<es" n)o podendo ser acessados de maneira alguma pelo programador. ?e
maneira diferente do array" uma lista n)o pode ser atribu;da a uma vari/vel" servindo apenas
para fa,er mGltiplas atribui(<es atrav1s de um array.
Ob$etos
Bm ob-eto pode ser iniciali,ado utili,ando o comando neE para instanciar
uma classe para uma vari/vel.
Exemplo:
class teste 9
$unction nada23 9
echo nada;
:
:
&php = ne; teste;
&php -> nada23;
A utili,a()o de ob-etos ser/ mais detal#ada mais 6 frente.
%ooleanos
PHP n)o possui um tipo booleano" mas 1 capa, de avaliar e!press<es e
retornar true ou false" atrav1s do tipo integer 1 usado o valor S (,ero) para representar o
estado false" e qualquer valor diferente de ,ero (geralmente I) para representar o estado
true.
Transforma&o de tipos
A transforma()o de tipos em PHP pode ser feita das seguintes maneiras
"oeres
Nuando ocorrem determinadas opera(<es ($f&" por e!emplo) entre dois
valores de tipos diferentes" o PHP converte o valor de um deles automaticamente (coer()o).
a interessante notar que se o operando for uma vari/vel" seu valor n)o ser/ alterado.
. tipo para o qual os valores dos operandos ser)o convertidos 1 determinado
da seguinte forma Se um dos operandos for $loat" o outro ser/ convertido para $loat"
sen)o" se um deles for integer" o outro ser/ convertido para integer.
Exemplo:
&php = '; // &php a string '
&php = &php < '; // &php o integer (
&php = &php < )4=;// &php o dou,le 04=
&php = ' < '40 // &php o dou,le (40
4omo podemos notar" o PHP converte string para integer ou dou,le
mantendo o valor. . sistema utili,ado pelo PHP para converter de strings para nGmeros 1 o
seguinte
a analisado o in;cio da string. Se contiver um nGmero" ele ser/ avaliado.
Sen)o" o valor ser/ S (,ero)'
. nGmero pode conter um sinal no in;cio ($f& ou $8$)'
Se a string contiver um ponto em sua parte num1rica a ser analisada" ele
ser/ considerado" e o valor obtido ser/ dou,le'
Se a string contiver um $e& ou $:& em sua parte num1rica a ser analisada"
o valor seguinte ser/ considerado como e!poente da base IS" e o valor
obtido ser/ dou,le'
Exemplos:
&php = ' < '.40; // &php == ''40
&php = ' < -'4)e); // &php == -'(>>
&php = ' < teste'.40; // &php == '
&php = ' < '.testes; // &php == ''
&php = ' < ? '.testes?; // &php == ''
&php = ' < ?< '.testes?; // &php == '
Transforma&o e'pl(cita de tipos
A sinta!e do typecast de PHP 1 semel#ante ao 4 basta escrever o tipo entre
par+nteses antes do valor
Exemplo:
&php = '0; // &php integer 2'03
&php = 2dou,le3 &php // &php dou,le 2'04.3
&php = )4> // &php dou,le 2)4>3
&php = 2int3 &php // &php integer 2)3
// o +alor decimal truncado
.s tipos de cast permitidos s)o
(int)" (integer) muda para integer'
(real)" (double)" (float) muda para float'
(string) muda para string'
(array) muda para array'
(ob-ect) muda para ob-eto.
"om a fun&o sett)pe
A fun()o sett%pe converte uma vari/vel para o tipo especificado" que pode
ser $integer&" $double&" $string&" $array& ou $ob-ect&.
Exemplo:
&php = '0; // &php integer
sett%pe2&php7dou,le3 // &php dou,le
4. Constantes
"onstantes pr*definidas
. PHP possui algumas constantes pr18definidas" indicando a vers)o do PHP"
o Sistema .peracional do servidor" o arquivo em e!ecu()o" e diversas outras informa(<es.
Para ter acesso a todas as constantes pr18definidas" pode8se utili,ar a fun()o phpin$o23"
que e!ibe uma tabela contendo todas as constantes pr18definidas" assim como
configura(<es da m/quina" sistema operacional" servidor #ttp e vers)o do PHP instalada.
Definindo constantes
Para definir constantes utili,a8se a fun()o de$ine. Bma ve, definido" o
valor de uma constante n)o poder/ mais ser alterado. Bma constante s7 pode conter valores
escalares" ou se-a" n)o pode conter nem um array nem um ob-eto. A assinatura da fun()o
de$ine 1 a seguinte
int de$ine2string nome@da@constante7 mixed +alor3;
A fun()o retorna true se for bem8sucedida. *e-a um e!emplo de sua
utili,a()o a seguir
de$ine 2?pi?7 )4'*'0>(10)13;
&circun$ = (pi&raio;
5. Operadores
+ritmticos
S7 podem ser utili,ados quando os operandos s)o nGmeros (integer ou float).
Se forem de outro tipo" ter)o seus valores convertidos antes da reali,a()o da opera()o.
< adi()o
- subtra()o
multiplica()o
/ divis)o
% m7dulo
de strings
S7 #/ um operador e!clusivo para strings
. concatena()o
de atribui&o
:!iste um operador b/sico de atribui()o e diversos derivados. Sempre
retornam o valor atribu;do. Co caso dos operadores derivados de atribui()o" a opera()o 1
feita entre os dois operandos" sendo atribu;do o resultado para o primeiro. A atribui()o 1
sempre por valor" e n)o por refer+ncia.
= atribui()o simples
<= atribui()o com adi()o
-= atribui()o com subtra()o
= atribui()o com multiplica()o
/= atribui()o com divis)o
%= atribui()o com m7dulo
4= atribui()o com concatena()o
Exemplo:
&a = =;
&a <= (; // &a passa a conter o +alor >
bit a bit
4omparam dois nGmeros bit a bit.
g $e& l7gico
h $ou& l7gico
i ou e!clusivo
Y n)o (invers)o)
ZZ s#ift left
\\ s#ift rig#t
#gicos
Btili,ados para inteiros representando valores booleanos
and $e& l7gico
or $ou& l7gico
!or ou e!clusivo
j n)o (invers)o)
gg $e& l7gico
hh $ou& l7gico
:!istem dois operadores para $e& e para $ou porque eles t+m diferentes
posi(<es na ordem de preced+ncia.
"ompara&o
As compara(<es s)o feitas entre os valores contidos nas vari/veis" e n)o as
refer+ncias. Sempre retornam um valor booleano.
]] igual a
j] diferente de
Z menor que
\ maior que
Z] menor ou igual a
\] maior ou igual a
,'press&o condicional
:!iste um operador de sele()o que 1 tern/rio. >unciona assim
2expressao'3?2expressao(3:2 expressao)3
o interpretador PHP avalia a primeira e!press)o. Se ela for verdadeira" a
e!press)o retorna o valor de e!press)oQ. Sen)o" retorna o valor de e!press)oH.
de incremento e decremento
ff incremento
88 decremento
Podem ser utili,ados de duas formas antes ou depois da vari/vel. Nuando
utili,ado antes" retorna o valor da vari/vel antes de increment/8la ou decrement/8la.
Nuando utili,ado depois" retorna o valor da vari/vel -/ incrementado ou decrementado.
Exemplos:
&a = &, = '.; // &a e &, rece,em o +alor '.
&c = &a<<; // &c rece,e '. e &a passa a ter ''
&d = <<&,; // &d rece,e ''7 +alor de &, A" incrementado
Ordem de preced-ncia dos operadores
A tabela a seguir mostra a ordem de preced+ncia dos operadores no momento
de avaliar as e!press<es'
Preced!ncia Associati"idade #$eradores
I. :squerda "
Q. :squerda or
H. :squerda !or
0. :squerda and
@. ?ireita print
X. :squerda ] f] 8] k] 9] .] l] g] j] Y] ZZ] \\]
R. :squerda V
L. :squerda hh
J. :squerda gg
IS. :squerda h
II. :squerda i
IQ. :squerda g
IH. n)o associa ]] j]
I0. n)o associa Z Z] \ \]
I@. :squerda ZZ \\
IX. :squerda f 8 .
IR. :squerda k 9 l
IL. ?ireita j Y ff 88 (int) (double) (string) (array) (ob-ect) @
IJ. ?ireita m
QS. n)o associa
neE
6. Estruturas de Controle
As estruturas que veremos a seguir s)o comuns para as linguagens de programa()o
imperativas" bastando" portanto" descrever a sinta!e de cada uma delas" resumindo o funcionamento.
%locos
Bm bloco consiste de v/rios comandos agrupados com o ob-etivo de
relacion/8los com determinado comando ou fun()o. :m comandos como i$" $or" ;hile"
s;itch e em declara(<es de fun(<es blocos podem ser utili,ados para permitir que um
comando fa(a parte do conte!to dese-ado. Blocos em PHP s)o delimitados pelos caracteres
$^& e $_&. A utili,a()o dos delimitadores de bloco em uma parte qualquer do c7digo n)o
relacionada com os comandos citados ou fun(<es n)o produ,ir/ efeito algum" e ser/ tratada
normalmente pelo interpretador.
Exemplo:
i$ 2&x == &%3
comando';
comando(;
Para que comandoQ este-a relacionado ao if 1 preciso utili,ar um bloco
i$ 2&x == &%39
comando';
comando(;
:
"omandos de sele&o
%amb1m c#amados de condicionais" os comandos de sele()o permitem
e!ecutar comandos ou blocos de comandos com base em testes feitos durante a e!ecu()o.
if
. mais trivial dos comandos condicionais 1 o i$. :le testa a condi()o e e!ecuta o comando
indicado se o resultado for true (valor diferente de ,ero). :le possui duas sinta!es
i$ 2expressBo3
comando;
i$ 2expressBo39
comando';
comando(;
comando);
comando*;
comando0;
comando';
comando(;
comando);
:
i$ 2expressBo3:
comando;
4 4 4
comando;
endi$;
Para incluir mais de um comando no i$ da primeira sinta!e" 1 preciso utili,ar um bloco"
demarcado por c#aves.
. else 1 um complemento opcional para o i$. Se utili,ado" o comando ser/ e!ecutado se
a e!press)o retornar o valor $alse (,ero). Suas duas sinta!es s)o
i$ 2expressBo3
comando;
else
comando;
i$ 2expressBo3:
comando;
4 4 4
comando;
else
comando;
4 4 4
comando;
endi$;
A seguir" temos um e!emplo do comando i$ utili,ado com else
i$ 2&a > &,3
&maior = &a;
else
&maior = &,;
. e!emplo acima coloca em Wmaior o maior valor entre Wa e Wb
:m determinadas situa(<es 1 necess/rio fa,er mais de um teste" e e!ecutar condicionalmente
diversos comandos ou blocos de comandos. Para facilitar o entendimento de uma estrutura do tipo
i$ 2expressao'3
comando';
else
i$ 2expressao(3
comando(;
else
i$ 2expressao)3
comando);
else
comando*;
foi criado o comando" tamb1m opcional elsei$. :le tem a mesma fun()o de um else e
um i$ usados seqnencialmente" como no e!emplo acima. Cum mesmo i$ podem ser utili,ados diversos
elsei$es" ficando essa utili,a()o a crit1rio do programador" que deve ,elar pela legibilidade de seu script.
. comando elsei$ tamb1m pode ser utili,ado com dois tipos de sinta!e. :m resumo" a
sinta!e geral do comando i$ fica das seguintes maneiras
i$ 2expressao'3
comando;
5 elsei$ 2expressao(3
comando; 6
5 else
comando; 6
i$ 2expressao'3 :
comando;
4 4 4
comando;
5 elsei$ 2expressao(3
comando;
4 4 4
comando; 6
5 else
comando;
4 4 4
comando; 6
endi$;
s%itc&
. comando s;itch atua de maneira semel#ante a uma s1rie de comandos i$ na mesma
e!press)o. >reqnentemente o programador pode querer comparar uma vari/vel com diversos valores" e
e!ecutar um c7digo diferente a depender de qual valor 1 igual ao da vari/vel. Nuando isso for necess/rio"
deve8se usar o comando s;itch. . e!emplo seguinte mostra dois trec#os de c7digo que fa,em a mesma
coisa" sendo que o primeiro utili,a uma s1rie de i$es e o segundo utili,a s;itch
i$ 2&i == .3
print i igual a /ero;
elsei$ 2&i == '3
print i igual a um;
elsei$ 2&i == (3
print i igual a dois;
s;itch 2&i3 9
case .:
print i igual a /ero;
,reaC;
case ':
print i igual a um;
,reaC;
case (:
print i igual a dois;
,reaC;
:
a importante compreender o funcionamento do s;itch para n)o cometer enganos. .
comando s;itch testa lin#a a lin#a os cases encontrados" e a partir do momento que encontra um valor
igual ao da vari/vel testada" passa a e!ecutar todos os comandos seguintes" mesmo os que fa,em parte de
outro teste" at1 o fim do bloco. por isso usa8se o comando ,reaC" quebrando o flu!o e fa,endo com que o
c7digo se-a e!ecutado da maneira dese-ada. *eremos mais sobre o ,reaC mais adiante. *e-a o e!emplo
s;itch 2&i3 9
case .:
print i igual a /ero;
case ':
print i igual a um;
case (:
print i igual a dois;
_
Co e!emplo acima" se Wi for igual a ,ero" os tr+s comandos $print& ser)o e!ecutados. Se Wi
for igual a I" os dois Gltimos $print& ser)o e!ecutados. . comando s7 funcionar/ da maneira dese-ada se Wi for
igual a Q.
:m outras linguagens que implementam o comando sEitc#" ou similar" os valores a serem
testados s7 podem ser do tipo inteiro. :m PHP 1 permitido usar valores do tipo string como elementos de teste
do comando sEitc#. . e!emplo abai!o funciona perfeitamente
s;itch 2&s3 9
case casa:
print 8 casa amarela;
case ar+ore:
print a "r+ore ,onita;
case lDmpada:
print EoBo apagou a lDmpada;
_
comandos de repeti&o
%&ile
. ;hile 1 o comando de repeti()o (la(o) mais simples. :le testa uma condi()o e e!ecuta
um comando" ou um bloco de comandos" at1 que a condi()o testada se-a falsa. Assim como o i$" o ;hile
tamb1m possui duas sinta!es alternativas
;hile 2<expressBo>3
<comando>;
;hile 2<expressBo>39
<comando'>;
<comando(>;
<comando)>;
<comando*>;
<comando0>;
<comando)>;
:
;hile 2<expressBo>3:
<comando>;
4 4 4
<comando>;
end;hile;
A e!press)o s7 1 testada a cada ve, que o bloco de instru(<es termina" al1m do teste inicial.
Se o valor da e!press)o passar a ser $alse no meio do bloco de instru(<es" a e!ecu()o segue at1 o final do
bloco. Se no teste inicial a condi()o for avaliada como $alse" o bloco de comandos n)o ser/ e!ecutado.
. e!emplo a seguir mostra o uso do ;hile para imprimir os nGmeros de I a IS
&i = ';
;hile 2&i <='.3
print &i<<;
do... %&ile
. la(o do444;hile funciona de maneira bastante semel#ante ao ;hile" com a simples
diferen(a que a e!press)o 1 testada ao final do bloco de comandos. . la(o do444;hile possui apenas
uma sinta!e" que 1 a seguinte
do 9
<comando>
4 4 4
<comando>
: ;hile 2<expressBo>3;
. e!emplo utili,ado para ilustrar o uso do ;hile pode ser feito da seguinte maneira
utili,ando o do444 ;hile
&i = .;
do 9
print <<&i;
: ;hile 2&i < '.3;
for
. tipo de la(o mais comple!o 1 o $or. Para os que programam em 4" 4ff ou 5ava" a
assimila()o do funcionamento do for 1 natural. 2as para aqueles que est)o acostumados a linguagens como
Pascal" #/ uma grande mudan(a para o uso do for. As tr+s sinta!es permitidas s)o
$or 2<iniciali/aFBo>;<condiFBo>;<incremento ou decremento>3
<comando>;
$or 2<iniciali/aFBo>;<condiFBo>;<incremento ou decremento>39
<comando>;
<comando>;
<comando>;
<comando>;
<comando>;
:
$or 2<iniciali/aFBo>;<condiFBo>;<incremento ou decremento>3:
<comando>;
4 4 4
<comando>;
end$or;
As tr+s e!press<es que ficam entre par+nteses t+m as seguintes finalidades
Aniciali,a()o comando ou seqn+ncia de comandos a serem reali,ados antes do inicio do la(o.
Serve para iniciali,ar vari/veis.
4ondi()o :!press)o booleana que define se os comandos que est)o dentro do la(o ser)o
e!ecutados ou n)o. :nquanto a e!press)o for verdadeira (valor diferente de ,ero) os comandos ser)o
e!ecutados.
Ancremento 4omando e!ecutado ao final de cada e!ecu()o do la(o.
Bm comando $or funciona de maneira semel#ante a um ;hile escrito da seguinte forma
<iniciali/aFBo>
;hile 2<condiFBo>3 9
comandos
444
<incremento>
:
.uebra de flu'o
'rea(
. comando ,reaC pode ser utili,ado em la(os de do" $or e ;hile" al1m do uso -/
visto no comando s;itch. Ao encontrar um ,reaC dentro de um desses la(os" o interpretador PHP para
imediatamente a e!ecu()o do la(o" seguindo normalmente o flu!o do script.
;hile 2&x > .3 9
444
i$ 2&x == (.3 9
echo erroG x = (.;
,reaC;
444
:
Co trec#o de c7digo acima" o la(o ;hile tem uma condi()o para seu t1rmino normal (W!
Z] S)" mas foi utili,ado o breaU para o caso de um t1rmino n)o previsto no in;cio do la(o. Assim o
interpretador seguir/ para o comando seguinte ao la(o.
)ontinue
. comando continue tamb1m deve ser utili,ado no interior de la(os" e funciona de
maneira semel#ante ao ,reaC" com a diferen(a que o flu!o ao inv1s de sair do la(o volta para o in;cio dele.
*e-amos o e!emplo
$or 2&i = .; &i < '..; &i<<3 9
i$ 2&i % (3 continue;
echo &i ;
:
. e!emplo acima 1 uma maneira ineficiente de imprimir os nGmeros pares entre S e JJ. .
que o la(o fa, 1 testar se o resto da divis)o entre o nGmero e Q 1 S. Se for diferente de ,ero (valor l7gico
true) o interpretador encontrar/ um continue" que fa, com que os comandos seguintes do interior do
la(o se-am ignorados" seguindo para a pr7!ima itera()o.
. !un"#es
Definindo funes
A sinta!e b/sica para definir uma fun()o 1
$unction nome@da@$unFBo25arg'7 arg(7 arg)63 9
Homandos;
444 ;
5return <+alor de retorno>6;
:
Nualquer c7digo PHP v/lido pode estar contido no interior de uma fun()o.
4omo a c#ecagem de tipos em PHP 1 dinMmica" o tipo de retorno n)o deve ser declarado"
sendo necess/rio que o programador este-a atento para que a fun()o retorne o tipo dese-ado.
a recomend/vel que este-a tudo bem documentado para facilitar a leitura e compreens)o do
c7digo. Para efeito de documenta()o" utili,a8se o seguinte formato de declara()o de fun()o
tipo $unction nome@da@$uncao2tipo arg'7 tipo arg(7 4443;
:ste formato s7 deve ser utili,ado na documenta()o do script" pois o PHP
n)o aceita a declara()o de tipos. Asso significa que em muitos casos o programador deve
estar atento ao tipos dos valores passados como parMmetros" pois se n)o for passado o tipo
esperado n)o 1 emitido nen#um alerta pelo interpretador PHP" -/ que este n)o testa os tipos.
/alor de retorno
%oda fun()o pode opcionalmente retornar um valor" ou simplesmente
e!ecutar os comandos e n)o retornar valor algum.
C)o 1 poss;vel que uma fun()o retorne mais de um valor" mas 1 permitido
fa,er com que uma fun()o retorne um valor composto" como listas ou arrays.
+rgumentos
a poss;vel passar argumentos para uma fun()o. :les devem ser declarados
logo ap7s o nome da fun()o" entre par+nteses" e tornam8se vari/veis pertencentes ao escopo
local da fun()o. A declara()o do tipo de cada argumento tamb1m 1 utili,ada apenas para
efeito de documenta()o.
Exemplo:
$unction imprime2&texto39
echo &texto;
:
imprime2teste de $unFIes3;
Passagem de par0metros por refer-ncia
Cormalmente" a passagem de parMmetros em PHP 1 feita por valor" ou se-a"
se o conteGdo da vari/vel for alterado" essa altera()o n)o afeta a vari/vel original.
Exemplo:
$unction mais02&numero3 9
&numero <= 0;
:
&a = );
mais02&a3; //&a continua +alendo )
Co e!emplo acima" como a passagem de parMmetros 1 por valor" a fun()o
mais@ 1 inGtil" -/ que ap7s a e!ecu()o sair da fun()o o valor anterior da vari/vel 1
recuperado. Se a passagem de valor fosse feita por refer+ncia" a vari/vel Wa teria L como
valor. . que ocorre normalmente 1 que ao ser c#amada uma fun()o" o interpretador salva
todo o escopo atual" ou se-a" os conteGdos das vari/veis. Se uma dessas vari/veis for
passada como parMmetro" seu conteGdo fica preservado" pois a fun()o ir/ trabal#ar na
verdade com uma c7pia da vari/vel.R Por1m" se a passagem de parMmetros for feita por
refer+ncia" toda altera()o que a fun()o reali,ar no valor passado como parMmetro afetar/ a
vari/vel que o cont1m.
H/ duas maneiras de fa,er com que uma fun()o ten#a parMmetros passados
por refer+ncia indicando isso na declara()o da fun()o" o que fa, com que a passagem de
parMmetros sempre se-a assim' e tamb1m na pr7pria c#amada da fun()o. Cos dois casos
utili,a8se o modificador $g&. *e-amos um e!emplo que ilustra os dois casos
$unction mais02J&num'7 &num(3 9
&num' <= 0;
&num( <= 0;
:
&a = &, = ';
mais02&a7 &,3; / Keste caso7 sL &num' ter" seu +alor
alterado7 pois a passagem por re$erMncia est" de$inida na
declaraFBo da $unFBo4 /
mais02&a7 J&,3; / 8#ui as duas +ari"+eis terBo seus +alores
alterados4 /
+rgumentos com valores pr*definidos 1default2
:m PHP 1 poss;vel ter valores default para argumentos de fun(<es" ou se-a"
valores que ser)o assumidos em caso de nada ser passado no lugar do argumento. Nuando
algum parMmetro 1 declarado desta maneira" a passagem do mesmo na c#amada da fun()o
torna8se opcional.
$unction teste2&php = testando3 9
echo &php;
:
teste23; // imprime testando
teste2outro teste3; // imprime outro teste
a bom lembrar que quando a fun()o tem mais de um parMmetro" o que tem
valor default deve ser declarado por Gltimo
$unction teste2&$igura = circulo7 &cor3 9
echo a $igura um 4 &$igura4 de cor &cor;
:
teste2a/ul3;
/ 8 $unFBo nBo +ai $uncionar da maneira esperada7 ocorrendo
um erro no interpretador4 8 declaraFBo correta : /
$unction teste(2&cor7 &$igura = circulo3 9
echo a $igura um 4 &$igura4 de cor &cor;
:
teste(2a/ul3;
/ 8#ui a $unFBo $unciona da maneira esperada7 ou seAa7
imprime o texto: a $igura um cNrculo de cor a/ul /
Contexto
. conte!to 1 o con-unto de vari/veis e seus respectivos valores num
determinado ponto do programa. Ca c#amada de uma fun()o" ao iniciar a e!ecu()o do
bloco que cont1m a implementa()o da mesma 1 criado um novo conte!to" contendo as
vari/veis declaradas dentro do bloco" ou se-a" todas as vari/veis utili,adas dentro daquele
bloco ser)o eliminadas ao t1rmino da e!ecu()o da fun()o.
,scopo
. escopo de uma vari/vel em PHP define a por()o do programa onde ela
pode ser utili,ada. Ca maioria dos casos todas as vari/veis t+m escopo global. :ntretanto"
em fun(<es definidas pelo usu/rio um escopo local 1 criado. Bma vari/vel de escopo global
n)o pode ser utili,ada no interior de uma fun()o sem que #a-a uma declara()o.
Exemplo:
&php = Oestando;
$unction Oeste23 9
echo &php;
:
Oeste23;
. trec#o acima n)o produ,ir/ sa;da alguma" pois a vari/vel Wp#p 1 de escopo
global" e n)o pode ser referida num escopo local" mesmo que n)o #a-a outra com nome
igual que cubra a sua visibilidade. Para que o script funcione da forma dese-ada" a vari/vel
global a ser utili,ada deve ser declarada.
Exemplo:
&php = Oestando;
$unction Oeste23 9
glo,al &php;
echo &php;
:
Oeste23;
Bma declara()o $global& pode conter v/rias vari/veis" separadas por
v;rgulas. Bma outra maneira de acessar vari/veis de escopo global dentro de uma fun()o 1
utili,ando um array pr18definido pelo PHP cu-o nome 1 WO3.BA3S. . ;ndice para a
vari/vel referida 1 o pr7prio nome da vari/vel" sem o caracter W. . e!emplo acima e o
abai!o produ,em o mesmo resultado
Exemplo:
&php = ?Oestando?;
$unction Oeste23 9
echo &PQRS8QT5?php?6; // imprime &php
echo &php; // nBo imprime nada
:
Oeste23;
$. %ari&eis
O modificador static
Bma vari/vel est/tica 1 vis;vel num escopo local" mas ela 1 iniciali,ada
apenas uma ve, e seu valor n)o 1 perdido quando a e!ecu()o do script dei!a esse escopo.
*e-a o seguinte e!emplo
$unction Oeste23 9
&a = .;
echo &a;
&a<<;
:
. Gltimo comando da fun()o 1 inGtil" pois assim que for encerrada a
e!ecu()o da fun()o a vari/vel Wa perde seu valor. 5/ no e!emplo seguinte" a cada c#amada
da fun()o a vari/vel Wa ter/ seu valor impresso e ser/ incrementada
$unction Oeste23 9
static &a = .;
echo &a;
&a<<;
:
. modificador static 1 muito utili,ado em fun(<es recursivas" -/ que o valor
de algumas vari/veis precisa ser mantido. :le funciona da seguinte forma . valor das
vari/veis declaradas como est/ticas 1 mantido ao terminar a e!ecu()o da fun()o. Ca
pr7!ima e!ecu()o da fun()o" ao encontrar novamente a declara()o com static" o valor da
vari/vel 1 recuperado.
:m outras palavras" uma vari/vel declarada como static tem o mesmo
$tempo de vida& que uma vari/vel global" por1m sua visibilidade 1 restrita ao escopo local
em que foi declarada e s7 1 recuperada ap7s a declara()o.
:!emplo
$unction Oeste23 9
echo ?&a?;
static &a = .;
&a<<;
:
. e!emplo acima n)o produ,ir/ sa;da alguma. Ca primeira e!ecu()o da
fun()o" a impress)o ocorre antes da atribui()o de um valor 6 fun()o e" portanto o conteGdo
de Wa 1 nulo (string va,ia). Cas e!ecu(<es seguintes da fun()o %este() a impress)o ocorre
antes da recupera()o do valor de &a e" portanto nesse momento seu valor ainda 1 nulo. Para
que a fun()o retorne algum valor o modificador static deve ser utili,ado.
/ari!veis /ari!veis
. PHP tem um recurso con#ecido como vari/veis vari/veis" que consiste em
vari/veis cu-os nomes tamb1m s)o vari/veis. Sua utili,a()o 1 feita atrav1s do duplo cifr)o
(WW).
&a = teste;
&&a = Uauricio Vi+as;
R exemplo acima e e#ui+alente ao seguinte:
&a = teste;
&teste = Uauricio Vi+as;
/ari!veis enviadas pelo navegador
Para interagir com a navega()o feita pelo usu/rio" 1 necess/rio que o PHP
possa enviar e receber informa(<es para o softEare de navega()o. A maneira de enviar
informa(<es" como -/ foi visto anteriormente" geralmente 1 atrav1s de um comando de
impress)o" como o ec#o. Para receber informa(<es vindas do navegador atrav1s de um linU
ou um formul/rio #tml o PHP utili,a as informa(<es enviadas atrav1s da BR3. Por
e!emplo se seu script p#p est/ locali,ado em http://localhost/teste4php) e
voc+ o c#ama com a url http://localhost/teste4php)?php=teste"
automaticamente o PHP criar/ uma vari/vel com o nome Wp#p contendo a string $teste&.
Cote que o conteGdo da vari/vel est/ no formato urlencode. .s formul/rios #tml -/
enviam informa(<es automaticamente nesse formato" e o PHP decodifica sem necessitar de
tratamento pelo programador.
34#encode
. formato urlencode 1 obtido substituindo os espa(os pelo caracter $f& e
todos os outros caracteres n)o alfa8num1ricos (com e!ce()o de $`&) pelo caracter $l&
seguido do c7digo AS4AA em #e!adecimal.
Por e!emplo o te!to $%estando I Q H jj& em urlencode fica
$%estandofIfQfHflQIlQI&
. PHP possui duas fun(<es para tratar com te!to em urlencode. Seguem suas
sinta!es
string urlencode2string texto3;
string urldecode2string texto3;
:ssas fun(<es servem respectivamente para codificar ou decodificar um te!to
passado como argumento. Para entender mel#or o que 1 um argumento e como funciona
uma fun()o" leia o t7pico $fun(<es&.
/ari!veis de ambiente
. PHP possui diversas vari/veis de ambiente" como a &WXW@TEQY" por
e!emplo" que cont1m o nome e o pat# do pr7prio arquivo. Algumas outras cont1m
informa(<es sobre o navegador do usu/rio" o servidor #ttp" a vers)o do PHP e diversas
informa(<es. Para ter uma listagem de todas as vari/veis e constantes de ambiente e seus
respectivos conteGdos" deve8se utili,ar a fun()o phpin$o234
/erificando o tipo de uma vari!vel
Por causa da tipagem dinMmica utili,ada pelo PHP" nem sempre 1 poss;vel
saber qual o tipo de uma vari/vel em determinado instantes n)o contar com a a-uda de
algumas fun(<es que a-udam a verificar isso. A verifica()o pode ser feita de duas maneiras
Funo *ue retorna o ti$o da "ari+"el
:sta fun()o 1 a gett%pe. Sua assinatura 1 a seguinte
string gett%pe2mixed +ar3;
A palavra $mi!ed& indica que a vari/vel var pode ser de diversos tipos.
A fun()o gett%pe pode retornar as seguintes strings integer7 dou,le7
string7 arra%7 o,Aect e unCno;n t%pe4
Fun,es *ue testam o ti$o da "ari+"el
S)o as fun(<es is@int7 is@integer7 is@real7 is@long7 is@$loat7
is@string7 is@arra% e is@o,Aect. %odas t+m o mesmo formato" seguindo modelo da
assinatura a seguir
int is@integer2mixed +ar3;
%odas essas fun(<es retornam true se a vari/vel for daquele tipo" e $alse em caso
contr/rio.
Destruindo uma vari!vel
a poss;vel desalocar uma vari/vel se ela n)o for usada posteriormente atrav1s
da fun()o unset" que tem a seguinte assinatura
int unset2mixed +ar3;
A fun()o destr7i a vari/vel" ou se-a" libera a mem7ria ocupada por ela"
fa,endo com que ela dei!e de e!istir. Se mais na frente for feita uma c#amada / vari/vel"
ser/ criada uma nova vari/vel de mesmo nome e de conteGdo va,io" a n)o ser que a
c#amada se-a pela fun()o isset. Se a opera()o for bem sucedida" retorna true.
/erificando se uma vari!vel possui um valor
:!istem dois tipos de teste que podem ser feitos para verificar se uma
vari/vel est/ setada com a fun()o isset e com a fun()o empt%.
' (un")o isset
Possui o seguinte prot7tipo
int isset2mixed +ar3;
: retorna true se a vari/vel estiver setada (ainda que com uma string va,ia
ou o valor ,ero)" e $alse em caso contr/rio.
' (un")o empt*
Possui a seguinte assinatura
int empt%2mixed +ar3;
: retorna true se a vari/vel n)o contiver um valor (n)o estiver setada) ou
possuir valor S (,ero) ou uma string va,ia. 4aso contr/rio" retorna $alse.
+rra)s 5ultidimensionais
Arrays multidimensionais s)o arrays simples com um dos (ou todos) seus elementos
sendo outro array e assim consecutivamente.
:!emplo
W4ampeaom@o ] IQH0@XRLJ '
W%ricampeaom$casa&o ] W4ampeao'
W%ricampeaom$predio&o ] IJIJIJIJ'
WBrasilmIo ] W%ricampeao'
WBrasilmQo ] $Bicampeao&'
WBrasilm$copa&o ] W%ricampeao'
WBrasilm0o ] $%etracampeao&'
WBrasilm$mundo&o ] $Pentacampeao&'
ec#o W4ampeaom@o' 99 resultar/ IQH0@XRLJ Array simples
ec#o WBrasilmIom$casa&om@o ' 99 resultar/ IJIJIJIJ Array tridimensional
ec#o W%ricampeaom$casa&om@o' 99 resultar/ IQH0@XRLJ Array bidimensional
ec#o WBrasilm$copa&om$predio&o' 99 resultar/ IJIJIJIJ Array bidimensional

-. )lasses e #b.etos
"lasse
Bma classe 1 um con-unto de vari/veis e fun(<es relacionadas a essas
vari/veis. Bma vantagem da utili,a()o 1 poder usufruir o recurso de encapsulamento de
informa()o. 4om o encapsulamento o usu/rio de uma classe n)o precisa saber como ela 1
implementada" bastando para a utili,a()o con#ecer a interface" ou se-a" as fun(<es
dispon;veis. Bma classe 1 um tipo e" portanto n)o pode ser atribu;da a uma vari/vel. Para
definir uma classe" deve8se utili,ar a seguinte sinta!e
class Kome@da@classe 9
+ar &+aria+el';
+ar &+aria+el(;
$unction $uncao' 2&parDmetro3 9
/ === corpo da $unFBo === /
:
:
Ob$eto
4omo foi dito anteriormente" classes s)o tipos" e n)o podem ser atribu;das a
vari/veis. *ari/veis do tipo de uma classe s)o c#amadas de ob-etos" e devem ser criadas
utili,ando o operador ne;" seguindo o e!emplo abai!o
&+ari"+el = ne; &nome@da@classe;
Para utili,ar as fun(<es definidas na classe" deve ser utili,ado o operador -
>" como no e!emplo
&+ari"+el->$uncao'23;
+ vari!vel 6t7is
Ca defini()o de uma classe" pode8se utili,ar a vari/vel &this" que 1 o
pr7prio ob-eto. Assim" quando uma classe 1 instanciada em um ob-eto" e uma fun()o desse
ob-eto na defini()o da classe utili,a a vari/vel &this" essa vari/vel significa o ob-eto que
estamos utili,ando.
4omo e!emplo da utili,a()o de classes e ob-etos" podemos utili,ar a classe
conta" que define uma conta banc/ria bastante simples" com fun(<es para ver saldo e fa,er
um cr1dito.
class conta 9
+ar &saldo;
$unction saldo23 9
return &this->saldo;
:
$unction credito2&+alor3 9
&this->saldo <= &+alor;
:
:
&minhaconta = ne; conta;
&minhaconta->saldo23; // a +ari"+el interna nBo $oi
// iniciali/ada7 e nBo contm
// +alor algum
&minhaconta->credito20.3;
&minhaconta->saldo23; // retorna 0.
Sub"lasses
Bma classe pode ser uma e!tens)o de outra. Asso significa que ela #erdar/
todas as vari/veis e fun(<es da outra classe" e ainda ter/ as que forem adicionadas pelo
programador. :m PHP n)o 1 permitido utili,ar #eran(a mGltipla" ou se-a" uma classe pode
ser e!tens)o de apenas uma outra.Para criar uma classe e!tendida" ou derivada de outra"
deve ser utili,ada a palavra reservada extends" como pode ser visto no e!emplo seguinte
class no+aconta extends conta 9
+ar &numero;
$unction numero23 9
return &this->numero;
:
:
A classe acima 1 derivada da classe conta" tendo as mesmas fun(<es e
vari/veis" com a adi()o da vari/vel &numero e a fun()o numero23.
"onstrutores
Bm construtor 1 uma fun()o definida na classe que 1 automaticamente
c#amada no momento em que a classe 1 instanciada (atrav1s do operador ne;). .
construtor deve ter o mesmo nome que a classe a que pertence. *e-a o e!emplo
class conta 9
+ar &saldo;
$unction conta 23 9
&this4saldo = .;
:
$unction saldo23 9
return &this->saldo;
:
$unction credito2&+alor3 9
&this->saldo <= &+alor;
:
:
Podemos perceber que a classe conta agora possui um construtor" que
iniciali,a a vari/vel &saldo com o valor S.
Bm construtor pode conter argumentos" que s)o opcionais" o que torna esta
ferramenta mais poderosa. Co e!emplo acima" o construtor da classe conta pode receber
como argumento um valor" que seria o valor inicial da conta.
*ale observar que para classes derivadas" o construtor da classe pai n)o 1
automaticamente #erdado quando o construtor da classe derivada 1 c#amado.
1/. P0P a"anado
8nteragindo com o bro9ser
PHP tamb1m permite interagir com informa(<es do broEser
automaticamente. Por e!emplo" o script a seguir mostra informa(<es sobre o broEser do
usu/rio.
<html>
<head><title>8prendendo WXW</title></head>
<,od%>
<? echo &XOOW@ZTE[@8PEKO; ?>
</,od%>
</html>
:sse c7digo em um Anternet :!plorer X.S com sistema operacional =indoEs JL" geraria
2o,illa90.S (compatible' 2SA: X.S' =indoEs JL)
<html>
<head><title>8prendendo WXW</title></head>
<,od%>
<?
i$ 2strpos2&XOOW@ZTE[@8PEKO7?UT!E3 G= .3 9
echo ?VocM usa !nternet Explorer?;
: else 9
echo ?VocM nBo usa !nternet Explorer?;
:
?>
</,od%>
</html>
Ceste e!emplo" ser/ apenas e!ibido um te!to informando se est/ sendo
utili,ado o 2icrosoft Anternet :!plorer ou n)o" mas para outras fun(<es poderia ser
utili,ado algo semel#ante.
a bom notar o surgimento de mais uma fun()o no c7digo anterior
strpos2string'7string(3. :ssa fun()o retorna a posi()o da primeira apari()o de
stringQ em stringI" contando a partir de ,ero" e n)o retorna valor algum se n)o ocorrer.
Assim" para testar se a string &XOOW@ZTE[@8PEKO cont1m a string UT!E" basta testar se
strpos devolve algum valor.
3tili:ando formul!rios HT5#
Ao clicar num bot)o $Submit& em um formul/rio H%23 as informa(<es dos
campos ser)o enviadas ao servidor especificado para que possa ser produ,ida uma resposta.
. PHP trata esses valores como vari/veis" cu-o nome 1 o nome do campo definido no
formul/rio. . e!emplo a seguir mostra isso" e mostra tamb1m como o c7digo PHP pode ser
inserido em qualquer parte do c7digo H%23
<html>
<head><title>8prendendo WXW</title></head>
<,od%>
<?php
i$ 2&texto G= ??3
echo ?VocM digitou \?&texto\?<,r><,r>?;
?>
<$orm method=post action=?<? echo &W8OX@!KYR; ?>?>
<input t%pe=?text? name=?texto? +alue=?? si/e='.>
<,r>
<input t%pe=?su,mit? name=?su,? +alue=?En+iarG?>
</$orm>
</,od%>
</html>
Ao salvar o arquivo acima e carreg/8lo no broEser" o usu/rio ver/ apenas um
formul/rio que cont1m um espa(o para digitar o te!to. Ao digitar um te!to qualquer e
submeter o formul/rio" a resposta" que 1 o mesmo arquivo PHP (indicado pela constante
WPA%H`AC>." que retorna o nome do arquivo) e!ibir/ a mensagem d*oc+ digitou
ZZmensagem\\d.
Asso ocorre porque o c7digo PHP testa o conteGdo da vari/vel Wte!to.
Anicialmente ele 1 uma string va,ia" e por isso nada 1 impresso na primeira parte. Nuando
algum te!to 1 digitado no formul/rio e submetido" o PHP passa a trat/8lo como uma
vari/vel. 4omo no formul/rio o campo possui o nome $te!to&" a vari/vel com seu conteGdo
ser/ Wte!to. Assim" no pr7!imo teste o valor da vari/vel ser/ diferente de uma string va,ia"
e o PHP imprime um te!to antes do formul/rio.
"oo;ies
4ooUies s)o mecanismos para arma,enar e consultar informa(<es nos broEsers dos
visitantes da p/gina. . PHP atribui cooUies utili,ando a fun()o setcooUie" que deve ser
utili,ada antes da tag Z#tml\ numa p/gina.
. uso de cooUies n)o 1 recomendado quando se trata de informa(<es sigilosas. .s
dados dos cooUies s)o arma,enados no diret7rio de arquivos tempor/rios do visitante"
sendo facilmente visuali,ado por pessoas mal intencionadas.
Al1m da op()o $aceitar cooUies& que pode ser desativada a qualquer momento pelo
visitante.
Para uma transmiss)o de dados segura 1 recomend/vel o uso de sess<es(ver
adiante).
SetcooUie($nome`do`cooUie&"&seu`valor&"&tempo`de`vida&"&pat#&"&dom;nio&"&cone!)o`s
egura&)
Come`do`cooUie ] a o nome que" posteriormente" se tornar/ a vari/vel e o que o
servir/ de refer+ncia para indicar o cooUie.
Seu`valor ] a o valor que a vari/vel possuir/. :sse valor pode ser de todos os
tipos.
%empo`de`vida ] a o tempo" em segundos" que o cooUie e!istir/ no computador do
visitante. Bma ve, e!cedido esse pra,o o cooUie se apaga de modo irrecuper/vel. Se esse
argumento ficar va,io" o cooUie se apagar/ quando o visitante fec#ar o broEser.
Pat# ] endere(o da p/gina que gerou o cooUie F autom/tico
?om;nio ] dom;nio ao qual pertence o cooUie F autom/tico
4one!)o`segura ] Andica se o cooUie dever/ ser transmitido somente em uma cone!)o
segura H%%PS.
Sess&o
Sess<es s)o mecanismos muito parecidos com os tradicionais cooUies. Suas
diferen(as s)o que sess<es s)o arma,enadas no pr7prio servidor e n)o e!piram a menos que
o programador queira apagar a sess)o.
:!istem algumas fun(<es que controlam sess<es e est)o detal#adas no cap;tulo
$IQ.Bibliotecas de fun(<es&.
Aqui est)o as fun(<es de sess)o mais usadas.
Come da fun()o Argumentos
Session`start() C)o precisa de argumento
Session`register() A vari/vel sem o cifr)o
Session`unregister() A vari/vel sem o cifr)o
Session`is`registered() A vari/vel sem o cifr)o
. session`destroy() s7 deve ser usado quando for da vontade do programador
acabar com todos as sess<es daquele visitante" portanto muito cuidado com essa fun()o.
4equire
A fun()o require p<e o conteGdo de um outro arquivo no arquivo p#p atual" antes de
ser e!ecutado. Nuando o interpretador do PHP ler este arquivo" ele encontrar/ todo o
conteGdo dos $requireKs& adicionado no arquivo corrente.
Require($nomedoarquivo&)'
4riando o #/bito de usar essa fun()o" o programador pode vir a encontrar um erro
de arquivo -/ declarado. Para evitar isso 1 recomend/vel que sempre que a fun()o require
for utili,ada ela se-a substitu;da pela fun()o require`once.
Require`once($nome`do`arquivo$)'
8nclude
A fun()o Anclude 1 semel#ante 6 fun()o require" com a diferen(a que o c7digo do
arquivo inclu;do 1 processado em tempo de e!ecu()o" permitindo que se-am usados
$includes& dentro de estruturas de controle como for e E#ile.
Warqs ] array(paI.ince"eaQ.ince"eaH.ince) '
for (Wi]S'WiZcount(Warqs)' Wiff)^
include(WarqsmWio)'
_
if (W! ]] Wy)^
include(WarquivoI)'
_
else^
include(WarquivoQ)'
_
9k
Cote que quando se utili,a a fun()o include
?entro de estruturas 1 necess/rio a utili,a()o das c#aves
k9
<ormul!rios +vanados
. PHP tamb1m entende as matri,es em forma de vari/veis vindas de um
formul/rio.
:!emplo
Zform action]&matri,es.p#p& met#od]$P.S%&\
Come Zinput type]&te!t& name]dadosmnomeo\Zbr\
:mail Zinput type]&te!t& name]dadosmemailo\Zbr\
:sportes de prefer+ncia Zbr\
Zselect multiple name]&esportesmo&\
Zoption value]&futebol&\>utebolZ9option\
Zoption value]&vqlei&\*qleiZ9option\
Z9select\Zbr\
Zinput type]&submit& value]&enviar&\
Z9form\
?epois de enviado" os campos se tornar)o vari/veis e campos como este
$dadosmnomeo& se transformar)o em arrays que n)o dei!am de ser vari/veis.
+rquivos 4emotos
Cas fun(<es que trabal#am com arquivos" 1 poss;vel utili,ar BR3s para acessar
arquivos em outros servidores na =eb ou no pr7prio servidor.
As fun(<es aqui utili,adas ser)o detal#adas mais 6 frente no cap;tulo $Biblioteca de
>un(<es&.
:!emplo
1endo
Wf ] fopen($#ttp99EEE.p#p.net&"&r&)'
if (jWf)^
ec#o $:rro ao abrir a BR3.Zbr\&'
e!it'
_
E#ile (jfeof(Wf))^
Ws ] fgets(Wf"Q@X)'
ec#o Ws'
_
fclose(Wf)'
2scre"endo
Wf ] fopen($ftp99usersen#a@site&"&E&)'
if (jWf)^
ec#o $:rro ao abrir a BR3.Zbr\&'
e!it'
_
else^
fputs(Wf"&te!to a ser escrito&)'
fputs(Wf"&mais te!to a ser escrito&)'
fputs(Wf"&mais te!to a ser escrito&)'
fputs(Wf"&mais te!to a ser escrito&)'
fputs(Wf"&mais te!to a ser escrito&)'
fclose'
_
Tratamento de erros
:!istem quatro tipos(at1 a vers)o 0.S) de erros no PHP para indicar a gravidade do
erro encontrado ou ocorrido. :les s)o
:rros de fun(<es (function errors)
Avisos (Earnings)
:rros de processamento (parser error)
.bserva(<es (notice)
As mensagens de erro s)o uma coisa com que os programadores devem prestar
muita aten()o" afinal nen#um programador quer por no ar um sistema que quando o
primeiro visitante entra apare(a uma mensagem de erro. Para evitar essas
inconveni+ncias use sempre um $@& antes da cada c#amada as fun(<es. Se a op()o
tracU`errors no arquivo p#p.ini estiver #abilitada" a mensagem de erro poder/ ser
encontrada na vari/vel global Wp#p`errormsg.
A c#amada da fun()o ficaria assim
@strtoloEer()'
:ssa fun()o dei!aria todos os caracteres em minGsculo" mas como n)o foi passado
nen#um argumento essa fun()o deveria e!ibir uma mensagem de erro.

11.S31
O que ?
?e acordo com AndreE %aylor" inventor original da linguagem SN3" o SN3 n)o
significa $Structured Nuery language& (ou qualquer outra coisa nesse sentido). 2as para o
resto do mundo" esse 1 seu significado agora. 4omo voc+ poderia esperar desse (n)o8)t;tulo"
o SN3 representa um m1todo mais geral e mais estrito de arma,enamento de dados que o
padr)o anterior de banco de dados n)o8relacionais no estilo dbm.
SN3 n)o 1 ci+ncia espacial. As quatro instru(<es b/sicas de manipula()o de dados
suportadas essencialmente por todos os bancos de dados de SN3 s)o S:3:4%" ACS:R%"
BP?A%: e ?:3:%:. S:3:4% recupera os dados do banco de dados" ACS:R% insere em
uma nova entrada" BP?A%: edita partes da entrada no lugar e ?:3:%: e!clui uma entrada
completamente.
A maior parte da dificuldade reside em pro-etar bancos de dados. . pro-etista deve
pensar muito seriamente sobre a mel#or maneira de representar cada parte de dados e
relacionamento para a utili,a()o plane-ada. a um pra,er programar com bancos de dados
bem pro-etados" enquanto os pobremente pro-etados podem dei!ar voc+ careca quando
contemplar as numerosas cone!<es e #orrorosas -un(<es.
.s bancos de dados SN3 s)o criados pelas c#amadas instru(<es de estrutura de
dados. As mais importantes s)o 4R:A%:" A3%:R e ?R.P. 4omo se poderia imaginar"
4R:A%: ?A%ABAS: cria um novo banco de dados e 4R:A%: %AB3: define uma nova
tabela dentro de um banco de dados. A3%:R altera a estrutura de uma tabela. ?R.P 1 a
bomba nuclear entre os comandos de SN3" uma ve, que e!clui completamente tabelas ou
banco de dados inteiros.
. bom pro-eto de banco de dados tamb1m 1 uma quest)o de seguran(a.
:mpregando medidas profil/ticas ra,o/veis" um banco de dados SN3 pode aprimorar a
seguran(a de seu site.
:sta apostila e!plicar/ somente o b/sico de SN3.
S,#,"T
S:3:4% 1 o comando principal de que voc+ precisa para obter informa(<es fora de
um banco de dados de SN3. A sinta!e b/sica 1 e!tremamente simples
S:3:4% campoI" campoQ" campoH >R.2 tabela =H:R: condi(<es
:m alguns casos" voc+ dese-ar/ pedir lin#as inteiras em ve, de selecionar partes
individuais de informa(<es. :ssa pr/tica 1 obsoleta por ra,<es muito boas(ela pode ser mais
lenta que solicitar apenas os dados de que voc+ precisa e pode levar a problemas se voc+
repro-etar a tabela) " mas ainda 1 utili,ada e" portanto" precisamos menciona8la. Bma lin#a
inteira 1 indicada utili,ando o s;mbolo do asteristico
S:3:4% k >R.2 min#a`tabela =H:R: campoI ] $abcdef&
Subsele,es
Antes de dei!armos o reino das instru(<es S:3:4%" devemos mencionar a
subsele()o. :ssa 1 uma instru()o como
S:3:4% p#one`number >R.2 table =H:R: name ] pS:3:4% name >R.2 tableQ =H:R: id ] Ie'
As subsele(<es s)o mais uma conveni+ncia que uma necessidade. :las podem ser
muito Gteis se voc+ estiver trabal#ando com enormes lotes de dados' mas 1 poss;vel obter o
mesmo resultado com duas sele(<es mais simples(embora isso ser/ algo mais lento" mesmo
no PHP0).
8S,4T
. comando que voc+ precisa para colocar novos dados em um banco de dados 1 o
ACS:R%. :is a sinta!e b/sica
ACS:R% AC%. tabela (campoI"campoQ"campoH) *A3B:S(WvalI"WvalQ"WvalH)'
.bviamente as colunas e seus valores devem corresponder' se voc+ misturar os seus
itens de array" nada de bom acontecer/. Se algumas lin#as n)o tiverem valores para alguns
campos" voc+ precisar/ utili,ar um valor nulo" va,io ou auto8incrementado F e" em um
n;vel mais profundo" voc+ pode ter assegurado de antem)o que os campos possam ser nulos
ou auto8increment/veis. Se isso n)o for poss;vel" voc+ simplesmente deve omitir qualquer
coluna que voc+ dese-a que assuma o padr)o de valor va,io em uma instru()o de ACS:R%.
Bm desdobramento da instru()o ACS:R% b/sica 1 ACS:R% AC%.... S:3:4%. Asso
apenas significa que voc+ pode inserir os resultados de uma instru()o S:3:4%
ACS:R% AC%. customer(birt#mont#" birt#floEer" birt#stone) S:3:4% k >R.2
birt#day`info =H:R: birt#mont# ] Wbirt#mont#'
:ntretanto" nem todos os bancos de dados de SN3 t+m essa capacidade. Al1m disso"
1 preciso ser cuidadoso com esse comando porque voc+ pode facilmente causar problemas
para voc+ mesmo. :m geral" n)o 1 uma boa id1ia selecionar a partir do mesmo banco de
dados em que voc+ esta inserindo.
3PD+T,
BP?A%: 1 utili,ado para editar informa(<es que -/ est)o no banco de dados sem
e!cluir qualquer quantidade significativa. :m outras palavras" voc+ pode seletivamente
alterar algumas informa(<es sem e!cluir um registro antigo inteiro e inserir um novo. A
sinta!e 1
BP?A%: table S:% campoI ] $valI&" campoQ ] $valQ&"campoH]&valH& =H:R:
condi()o'
A instru()o condicional 1 e!atamente como uma condi()o S:3:4%" como =H:R:
id]I@ ou =H:R: gender]&>&.
D,#,T,
?:3:%: 1 bastante auto8e!plicativa voc+ a utili,a para e!cluir permanentemente as
informa(<es do banco de dados. A sinta!e 1
?:3:%: datapoint >R.2 table =H:R: condition'
A coisa mais importante a lembrar8se 1 da condi()o F se voc+ n)o configurar uma"
e!cluir/ cada entrada nas colunas especificadas do banco de dados" sem uma confirma()o
ou uma segunda c#ance em muitos casos.
O que 7! em comum entre= D,#,T, ' 3PD+T,
*oc+ deve lembrar8se de utili,ar uma condi()o toda ve, que atuali,ar ou e!cluir. Se
voc+ n)o fi,er isso" todas as lin#as na tabela sofrer)o a mesma altera()o ou e!clus)o.
2esmo os programadores mais e!perientes esquecem a condi()o" para seu grande
constrangimento profissional. 4uidado para n)o esquecer a condi()o.
"4,+T,
4R:A%: 1 utili,ado para fa,er uma tabela ou banco de dados completamente novo.
Realmente criar um banco de dados implica um pouco mais que apenas atribuir um nome.
4R:A%: ?A%ABAS: db`name'
%odo o trabal#o est/ em definir as tabelas e as colunas. Primeiro voc+ declara o
nome da tabela e depois deve detal#ar os tipos espec;ficos de colunas dessa tabela no que 1
c#amado de $defini()o de cria()o&.
4R:A%: %AB3: table ^
8\id`col AC% C.% CB33 AB%.`AC4R:2:C% PRA2ARr P:r"
8\colI %:D% CB33 AC?:D"
8\colQ ?A%: C.% CB33
_'
?iferentes servidores de SN3 t+m tipos de dados e op(<es de defini()o ligeiramente
diferentes" ent)o a sinta!e de um n)o pode transferir e!atamente para outro.
D4OP
?R.P pode ser utili,ado para e!cluir completamente uma tabela ou banco de dados
e todos os seus dados associados. :le n)o 1 um comando mais sutil
?R.P %AB3: table'
?R.P ?A%ABAS: db`name
.bviamente 1 necess/rio muito cuidado com essa instru()o.
+#T,4
A3%:R 1 a maneira de alterar uma estrutura da tabela. *oc+ simplesmente indica
que tabela est/ alterando e redefine suas especifica(<es. Covamente" eis os produtos SN3
diferem na sutile,a.
A3%:R %AB3: table R:CA2: AS neE`table'
A3%:R %AB3: neE`table A?? 4.3B2C colH *AR4HAR(@S) '
A3%:R %AB3: neE`table ?R.P 4.3B2C colQ'
14. 'ancos de dados com$at5"eis com o P0P6
.s bancos de dados atualmente suportados pelo PHP s)o Adabas D, dBase, mSQL,
InterBase, SyBase, Empress, MySQL, Velocis, FilePro, racle, dbm,
In!ormix, Post"reSQL.
17. 'iblioteca de Fun,es
Ceste cap;tulo n)o est)o detal#adas todas as fun(<es do PHP" mas grande parte das
fun(<es mais utili,adas est)o detal#adas neste cap;tulo.
%ibliotecas requeridas
Para que se possa utili,ar essas fun(<es 1 preciso ter instalado" no servidor" as
seguintes bibliotecas
27dulo do PHP .nde encontrar
3?AP ftp99ftp.openldap.org9pub9openldap9
ftp99terminator.rs.itd.umic#.edu9ldap9
ftp99ftp.critical8angle.com9pub9cai9slapd9
BerUley ?BQ #ttp99EEE.sleepycat.com9
SC2P #ttp99EEE.ece.ucdavis.edu9ucd8snmp9
O? #ttp99EEE.boutell.com9gd9bbuildgd
mSN3 #ttp99EEE.#ug#es.com.au9
2ySN3 #ttp99EEE.mysql.com9
A2AP ftp99ftp.cac.Eas#ington.edu9imap9
>ree%ype (libttf) #ttp99EEE.freetype.org
Tlib #ttp99EEE.cdrom.com9pub9info,ip9,lib
:!pat D23 parser #ttp99EEE.-clarU.com9!ml9e!pat.#tml
P?>lib #ttp99EEE.ifconnection.de9Ytm9
mcrypt ftp99argeas.cs8net.gr9pub9uni!9mcrypt9
m#as# #ttp99sasEeb.de9m#as#9
tIlib #ttp99EEE.neuroinformatiU.ru#r8uni8
boc#um.de9ini9P:.P3:9rm,9tIlib.#tml
?malloc #ttp99EEE.dmalloc.com9
Aspell #ttp99metalab.unc.edu9Uevina9aspell9
+rra)
Arra
Retorna um array de parMmetros. sndices podem ser atribu;dos aos parMmetros atrav1s do
operador.
Array array(...)'
:!emplo
Warr ] array($palavras& ]\ array($I& ]\ $inde!&"&Q& ]\ $main$"&H& ]\
$default&)"&tradu()o& ]\ array($;ndice&"&principal&"&padr)o&) )'
arra8(es 9P0P:;
Retorna os ;ndices de um array.
Array array`Ueys(array matri,)'
Arra8merge 9P0P:;
Retorna um array resultante da concatena()o de dois ou mais arrays.
Array array`merge(array matri,I" array matri,Q" m...o)'
Arra8$o$9P0P:;
Retorna e remove o ultimo elemento de um array.
2i!ed array`pop(array matri,I)'
Arra8$us&9P0P:;
Acrescente elementos no final de um array. Retorna o numero de elementos de uma array.
Ant array`pus#(array matri,I" mi!ed elemI"m...o)'
Arra8s&ift9P0P:;
Retorna e remove o primeiro elemento de um array
2i!ed array`s#ift(array array)'
Arra8slice9P0P:;
Retorna uma seqn+ncia de elementos de um array.
Array array`slice(array matri," int inicio" int mtaman#oo) '
Argumento ?escri()o
2atri, o array de onde ser)o copiados os elementos
An;cio Posi()o inicial no array
taman#o CGmero de elementos a serem retornados
Arra8s$lice9P0P:;
Remove elementos de um array e" opcionalmente" substitui os elementos removidos por
outros.
Array array`splice(array matri," int in;cio" int mtaman#oo" array msubstitui()oo)'
Argumento ?escri()o
2atri, o array de onde ser)o copiados os elementos
An;cio Posi()o inicial no array entrada
%aman#o CGmero de elementos a serem removidos
Substitui()o Arrays dos elementos que substituir)o os
elementos removidos
Arra8uns&ift9P0P:;
Acrescenta elementos no in;cio de um array. Retorna o nGmero de elementos de uma array.
Ant array`uns#ift(array matri," mi!ed var" m...o)'
Arra8"alues9P0P:;
Retorna os valores de um array
Array array`values(array matri,)'
Arra8%al(
Aplica uma fun()o para cada elemento de um array.
Ant array`EalU(array matri," string nomefunc" mi!ed dadose!tras)'
>unction nomefunc(Witem" W;ndice" Wdadose!tras)
:!emplo
Wmatri, ] array($I&]\&monitor&"&Q&]\&Placa de v;deo&" $H&]\ $mouse&)'
99esta 1 uma das fun(<es c#amadas pelo array`EalU
function imprime`item(Witem" W;ndice"Wdados)^
ec#o $W;ndice ] Witem(Wdados)&'
_
99esta 1 uma das fun(<es c#amadas pelo array`EalU
function atuali,ar`item(gWitem" W;ndice" Wdados)^
Witem ] $Witem (Wdados)$'
_
array`EalU(Wmatri,"eimprime`iteme"eimpressoe)'
array`EalU(Wmatri,"eatuali,ar`iteme"eatuali,adoe)'
array`EalU(Wmatri,"eimprime`iteme"eatuali,adoe)'
Arsort
.rdena um array na ordem reversa" mantendo a associa()o dos ;ndices com os elementos
*oid arsort(array array)'
Asort
.rdena um array na ordem" mantendo a associa()o dos ;ndices com os elementos
*oid asort(array array)'
)om$act9P0P:;
4ria um array de vari/veis com seus valores. .s parMmetros podem ser nomes de vari/veis
ou arrays com os nomes de vari/veis.
Array compact(string nomevarhstring nomesvar"m...o) '
:!emplo
Wdepto ] $?esenvolvimento&'
Wfuncion/rio ] $5o)o >ulanin#o&'
Wcargo ] $Analista de Sistemas& '
Watributos ] array($cargo&"&depto&)'
Wres ] compact($funcion/rio&"&atributos&)'
. c7digo acima ir/ criar o array ($funcion/rio&]\&5o)o >ulanin#o&"&cargo&]&Analista de
Sistemas&"&depto&]\&?esenvolvimento&).
)ount
Retorna o numero de elementos em um array. Retorna I se a vari/vel n)o for um array e S
se a vari/vel n)o estiver definida.
Ant count(mi!ed matri,) '
)urrent
Retorna o elemento corrente em um array
2i!ed current(array matri,)'
2ac&
Retorna o par $elemento e valor& atual de um array" avan(ando o cursor do array para o
pr7!imo item. a semel#ante a um loop !or que percorre os elementos de um array.
Array eac#(array matri,) '
2nd
Aponta o indicador interno de um array para o Gltimo elemento.
:nd(array matri,)'
2<tract
4onverte os pares $;ndice ]\ valor& em vari/veis $nome ]\ valor&. a o inverso da fun()o
compact().
*oid e!tract(array matri," int mtipo`e!traca()oo" string mprefi!oo) '
%ipo de e!tra()o ?escri()o
:D%R`.*:R=RA%: Sobrescreva as vari/veis e!istentes se #ouver
colis)o
:D%R`SPAP C)o sobrescreva as vari/veis se #ouver
colis)o
:D%R`PR:>AD`SA2: Se #ouver colis)o com as vari/veis e!istentes"
coloque o prefi!o no nome da vari/vel
:D%R`PR:>AD`A33 4oloque o prefi!o no nome de todas as
vari/veis.
In8arra9P0P:;
Retorna true se texto e!istir no array matri,
Bool in`array(mi!ed te!to" array matri,)'
=e
Retorna o elemento ;ndice da posi()o corrente de um array
2i!ed Uey(array matri,)'
=sort
.rdena um array pelos ;ndices" mantendo a associa()o dos ;ndices com os elementos.
Ant Usort(array matri,) '
1ist
Atribui uma lista de vari/veis em apenas uma opera()o
*oid list(...)'
Ne<t
Retorna o pr7!imo elemento de um array" ou false se n)o #ouver mais elementos.
2i!ed ne!t(array matri,)'
Pos
Retorna o elemento corrente de um array
2i!ed pos(array matri,)'
Pre"
Retorna o elemento anterior ao elemento corrente de um array ou falso se n)o #ouver mais
elementos.
2i!ed prev(array matri,)'
>ange
Retorna um array contendo uma seqn+ncia de nGmeros inteiros no intervalo especificado.
Array range(int lim`inferior" int lim`superior) '
>eset
Aponta o indicador interno de um array para seu primeiro elemento.
2i!ed reset(array matri,)'
>sort
.rdena um array na ordem inversa
*oid rsort(array matri,)'
S&uffle
:mbaral#a os elementos de um array
*oid s#uffle(array matri,)'
Si?eof
Retorna o nGmero de elementos de um array.
Ant si,eof(array matri,)'
Sort
.rdena um array
*oid sort(array matri,)'
@asort
.rdena um array utili,ando uma fun()o definida pelo programador" mantendo a associa()o
dos ;ndices. A fun()o de compara()o dever/ retornar um inteiro menor que ,ero" igual a
,ero" ou maior que ,ero" se o primeiro argumento for respectivamente menor que" igual a"
ou maior que o segundo argumento.
*oid uasort(array matri," function func`compara) '
@(sort
.rdena um array pelos ;ndices" utili,ando uma fun()o definida pelo programador. A fun()o
de compara()o dever/ retornar um inteiro menor que ,ero" igual a ,ero" ou maior que ,ero"
se o primeiro argumento for respectivamente menor que" igual a" ou maior que o segundo
argumento.
*oid uUsort(array matri," function func`compara)'
@sort
.rdena um array pelos valores" utili,ando uma fun()o definida pelo programador. A fun()o
de compara()o dever/ retornar um inteiro menor que ,ero" igual a ,ero" ou maior que ,ero"
se o primeiro argumento for respectivamente menor que" igual a" ou maior que o segundo
argumento.
*oid usort(array matri," function func`compara)'
5atem!tica para n>meros inteiros
'c$o%
:leva o primeiro nGmero 6 pot+ncia do segundo nGmero. . parMmetro adicional escala
significa o nGmero de d;gitos ap7s o ponto decimal.
String bcpoE(string !" string y" int mescalao)'
'cscale
2uda o valor padr)o do parMmetro escala para todas as fun(<es matem/ticas subseqnentes
que n)o ten#am um valor definido para escala.
String bcscale(int scala)
Datas
)&ec(date
Retorna true se uma data for v/lida' caso contr/rio" retorna false
Ant c#ecUdate(int m+s" int dia" int ano)'
Aate
Retorna uma data no formato especificado
String date(string formato"intmdata#orao )'
Argumento ?escri()o
?ata ?ata9#ora a ser formatada. Se n)o for
especificada utili,ar/ a data9#ora corrente
formato String com caracteres de formata()o de datas

4aractere Significado
a $am& ou $pm&
A $A2& ou $P2&
d ?ia em formato num1rico. ?e $SI& a $HI&.
? ?ia da semana" te!tual" H letras. :!. $>ri&
> 2+s" te!tual" formato longo. :!. &5anuary&.
# Hora no formato de IQ #oras. ?e $SI& a $IQ&.
H Hora no formato de Q0 #oras. ?e $SS& a $QH&.
g Hora no formato de IQ #oras" sem os ,eros 6 esquerda. ?e $I& a $IQ&.
O Hora no formato de Q0 #oras" sem os ,eros 6 esquerda. ?e $S& a $QH&.
i 2inutos. ?e $SS& a $@J&.
- ?ia do m+s sem os ,eros 6 esquerda. ?e $I& a $HI&.
l ?ia da semana" te!tual" longo. :!. $>riday&.
3 Booleano que indica se o ano 1 bisse!to.&S& ou $I&.
m 2+s. ?e $SI& a $IQ&.
n 2+s sem ,eros 6 esquerda. ?e $I& a $IQ&.
2 2+s" te!tual" H letras. :!. $5an&.
s Segundos. ?e $SS& a $@J&.
S Sufi!o ordinal em ingl+s" te!tual" Q caracteres. :!. $t#$"&nd&.
t CGmero de dias do m+s determinado.:!.&QL& a $HI&.
B CGmero de segundos desde o $epoc#&.
E ?ia da semana" num1rico. ?e $S&(domingo) a $X& (s/bado) .
r Ano com 0 d;gitos. :!. $QSSQ&.
y Ano com Q d;gitos. :!. $SQ&.
, ?ia do ano. ?e $S& a $HX@&.
T >uso #or/rio em segundos. ?e $80HQSS& a $0HQSS&.
Betdate
Retorna um array associativo contendo todas as informa(<es de uma data9#ora espec;fica.
Array getdate(int data9#ora)'
sndices da matri, retornada.
$seconds& Segundos
$minutes& 2inutos
$#ours& Horas
$mday& ?ia do m+s
$Eday& ?ia da semana no formato decimal
$mon& 2+s no formato decimal
$year& Ano no formato decimal
$yday& ?ia do ano no formato decimal
$EeeUday& ?ia da semana no formato decimal
$mont#& 2+s no formato te!to
Bettimeofda
Retorna um array associativo contendo as informa(<es da #ora corrente
Array gettimeofday(void)'
.s ;ndices da matri, s)o
$sec& Segundos
$usec& 2icrosegundos
$minutesEest& 2inutos a oeste de OreenEic#
$dsttime& %ipo da corre()o dst

Bmdate
Retorna uma data9#ora O2% no formato BCAD. a id+ntica 6 fun()o mUtime()" e!ceto que a
#ora retornada 1 a #ora de OreenEic#.
String gmdate(string formato" int data#ora)'
Bmm(time
Retorna a data9#ora O2% no formato BCAD. a id+ntica 6 fun()o mUtime()" e!ceto que a
data passada no parMmetro representa uma data O2%.
Ant gmmUtime(int #ora" int minuto" int segundo" int m+s" int dia" int ano" int mdsfo)'
Bmstrftime
Retorna uma data9#ora O2%94B% no formato especificado. a semel#ante 6 fun()o
strftime()" e!ceto que a #ora retornada 1 a #ora de OreenEic#.
String gmstrftime(string formato" int data#ora)'
Cicrotime
Retorna uma string contendo a data9#ora atual no formato $msec sec& do BCAD" que
significa o nGmero de milisegundos e depois os segundos desde o BCAD :poc#(SI9SI9IJRS
SSSSSS O2%).
String microtime(void)'
C(time
Retorna uma data9#ora no formato BCAD
Ant mUtime(int #ora" int minuto" int segundo" int m+s" ine dia" int ano" int mdsfo)'
Strftime
Retorna uma data no formato especificado. .s nomes por e!tenso dos meses e dos dias da
semana dependem da configura()o feita com a fun()o setlocale().
String strftime(string formato" int data#ora)'
Argumento ?escri()o
?ata ?ata9#ora a ser formatada. Se n)o especificada" utili,ar/ a data9#ora corrente
>ormato String com caracteres de formata()o de datas
4aractere Significado
la ?ia da semana abreviado
lA ?ia da semana completo
lb Come abreviado do m+s
lB Come completo do m+s
lc Representa()o preferida de data e #ora
ld ?ia do m+s no formato decimal (SS8HI)
lH Hora no formato decimal de Q0 #oras (SS8QH)
ll Hora no formato decimal de IQ #oras (SS8IQ)
l- ?ia do ano no formato decimal (SSI8HXX)
lm 2+s em formato decimal (I8IQ)
l2 2inutos no formato decimal
lp pame ou ppme" dependendo da #ora especificada
lS Segundos no formato decimal
lB CGmero da semana do ano atual no formato decimal" come(ando no primeiro
domingo como o primeiro dia da primeira semana
l= CGmero da semana do ano atual no formato decimal" come(ando na primeira
segunda8feira como o primeiro dia da primeira semana
lE ?ia da semana no formato decimal" sendo o domingo igual a S.
l! Representa()o preferida da data" sem a #ora
lD Representa()o preferida da #ora" sem a data
ly Ano no formato decimal" sem o s1culo (SS8JJ)
lr Ano no formato decimal" com o s1culo.
lT Tona de fuso #or/rio" ou nome" ou abrevia()o.
ll Bma caractere literal $l&.

Dime
Retorna a data9#ora no formato BCAD" que corresponde ao nGmero de segundos desde o
Bni! :poc#(SIcSIcIJRS SSSSSS O2%)
Ant time(void)'
Diretrio
)&dir
Altera o diret7rio correspondente do PHP para o diret7rio especificado. Retorna true se
tiver sucesso' caso contr/rio retorna false
Ant c#dir(string diret7rio)'
)lasse dir
a uma classe para leitura de diret7rios. . diret7rio determinado 1 aberto. :sta classe possui
duas propriedades que estar)o dispon;veis ap7s a abertura do diret7rio a propriedade
#andle" que pode ser usada com outras fun(<es como readdir()" reEinddir() e closedir() e a
propriedade pat#" que cont1m o camin#o do diret7rio que foi aberto. %r+s m1todos est)o
dispon;veis read" reEind e close.
CeE dir(string diret7rio) '
)losedir
:ncerra a associa()o de um identificador(#andle) com um diret7rio.
*oid closedir(int #andle`dir) '
#$endir
Retorna um #andle de diret7rio para ser usado nas fun(<es closedir()" readdir() e
reEinddir().
Ant opendir(string diret7rio)'
>eaddir
Retorna o pr7!imo nome de arquivo do diret7rio" na ordem em que estiverem arma,enadas.
String readdir(int #andle`dir)'
>e%inddir
Retorna o ponteiro 6 posi()o inicial do diret7rio
*oid reEinddir(int #andle`dir)'
,'ecu&o de Programas
2sca$es&ellcmd
Retira quaisquer caracteres de um string que poderiam ser utili,ados para enganar um
comando S#ell para e!ecutar comandos arbitr/rios. :sta fun()o normalmente 1 usada para
verificar os dados fornecidos pelo usu/rio antes de serem passados para as fun(<es e!ec()
ou system().
String escapes#ellcmd(string comando)'
2<ec
:!ecuta um comando e!terno e mostra a Gltima lin#a do resultado do comando.
String e!ec(string comando" string marrayo" int mvari/vel`refo) '
Argumento ?escri()o
4omando 4omando e!terno a ser e!ecutado
Array Array contendo as lin#as do resultado
*ari/vel`ref *ari/vel que conter/ o c7digo de retorno do comando e!ecutado
Passt&ru
:!ecuta um comando e!terno e mostra todos os resultados.
String passt#ru(string comando" int mvari/vel`refo)'
Argumento ?escri()o
4omando 4omando e!terno a ser e!ecutado
*ari/vel`ref *ari/vel que conter/ o c7digo de retorno do comando e!ecutado
Sstem
:!ecuta um comando e!terno e mostra os resultados.
String system(string comando" int mvari/vel`refo)'
Argumento ?escri()o
4omando 4omando e!terno a ser e!ecutado
*ari/vel`ref *ari/vel que conter/ o c7digo de retorno do comando e!ecutado
Sistema de arquivos do servidor
'asename
Retorna o nome do arquivo em um pat#. Co EindoEs" ambos os caracteres" 9 e c" s)o usados
como separadores de diret7rios. :m outros ambientes 1 utili,ado somente o caractere 9.
String basename(string pat#)'
)&gr$
2uda o grupo ao qual um arquivo pertence em ambientes BCAD. :m ambientes EindoEs
n)o fa, nada" retornando sempre true.
Ane c#grp(string nome`do`arquivo" mi!ed grupo) '
)&mod
Altera as permiss<es de um arquivo em ambientes BCAD. Retorna true em caso de sucesso'
caso contr/rio" retorna false.
:m ambientes EindoEs esta fun()o n)o fa, nada" sempre retornando true
Ant c#mod(string nome`do`arquivo" int modo) '
Argumento ?escri()o
Come`arquivo Come do arquivo
2odo . valor passado como parMmetro deve ser do tipo octal. :!.
c#mod($9algumdiretorio9algumarquivo&"SR@@)'
)&o%n
Altera o propriet/rio de um arquivo em ambientes BCAD. Somente o root pode alterar o
propriet/rio de um arquivo. Retorna true em caso de sucesso' caso contr/rio" retorna false.
Co EindoEs esta fun()o na fa, nada sempre retornando true.
Ant c#oEn(string nome`arquivo" mi!ed propriet/rio)'
)learstatcac&e
Apaga o cac#e de status dos arquivos utili,ados em tempo de e!ecu()o no PHP
*oid clearstatcac#e(void)'
)o$
4opia um arquivo. Retorna true se tiver sucesso' caso contr/rio" retorna false.
Ant copy(string nome`arquivo" string arquivo`destino)'
Aelete
Apaga um arquivo do servidor
*oid delete(string nome`arquivo) '
Airname
Retorna o nome de um diret7rio em um pat#. *e-a a fun()o basename().
String dirname(string pat#)'
Ais(frees$ace
Retorna o nGmero de bytes dispon;veis em um disco.
Ant disUfreespace(string nome`arquivo)'
Fclose
>ec#a um arquivo. Retorna true se tiver sucesso' caso contr/rio" retorna false.
Ant fclose(int fp)'
Feof
Retorna true caso o ponteiro de arquivo este-a no fim do arquivo ou ocorra um erro' caso
contr/rio" retorna false.
Ant feof(fp)'
Fgetc
Retorna um caractere apontado pelo ponteiro do arquivo. Retorna false se for :.>.
String fgetc(int fp)'
Fgetcs"
3+ uma lin#a do arquivo a partir do ponteiro e coloca em um array os campos lidos. 3in#as
em branco ser)o convertidas em arrays compreendendo um Gnico campo nulo.
Array fgetcsv(int fp" int taman#o" string mdelimitadoro)'
Fgets
Retorna uma string do arquivo a partir do ponteiro de arquivo at1 que (taman#o 8 I) bytes
se-am lidos do arquivo. A leitura termina quando encontra o fim de uma lin#a ou quando o
arquivo termina.
String fgets(int fp" int taman#o)'
Fgetss
3+ strings do arquivo como a fun()o fgets()" tirando todas as tags H%23 do te!to lido.
String fgetss(int fp" int taman#o) '
File
3+ um arquivo inteiro e coloca seu conteGdo em um array. 4ada elemento do array
corresponder/ a cada lin#a do arquivo lido" sem tirar qualquer informa()o.
Array file(string nome`arquivo)'
File8e<ists
Retorna true se um determinado arquivo e!iste' caso contr/rio" retorna false. .s resultados
desta fun()o s)o arma,enados e reutili,ados. Para atuali,ar esta informa()o utili,e a fun()o
clearstatcac#e().
Ant file`e!ists(string nome`arquivo)'
Fileatime
Retorna a data9#ora do Gltimo acesso ao arquivo" ou false se ocorrer um erro. Para atuali,ar
esta informa()o utili,e a fun()o clearstatcac#e().
Ant fileatime(string nome`arquivo)'
Filectime
Retorna a data9#ora da Gltima mudan(a do inode de um arquivo" ou false se ocorrer um
erro. Para atuali,ar esta informa()o utili,e a fun()o clearstatcac#e().
Ant filectime(string nome`arquivo)'
Filegrou$
Retorna o nome do grupo ao qual pertence o arquivo" ou false em caso de erro. .s
resultados desta fun()o s)o arma,enadas e reutili,adas. Para utili,ar esta informa()o utili,e
a fun()o clearstatcac#e().
Ant filegroup(string nome`arquivo)'
Fileinode
Retorna o nGmero do inode de um arquivo" ou false em caso de erro. .s resultados desta
fun()o s)o arma,enadas e reutili,adas. Para utili,ar esta informa()o utili,e a fun()o
clearstatcac#e().
Ant fileinode(string nome`arquivo)'
Filemtime
Retorna a data9#ora da Gltima altera()o de um arquivo" ou false se ocorrer um erro. Para
atuali,ar esta informa()o utili,e a fun()o clearstatcac#e().
Ant filemtime(string nome`arquivo)'
Fileo%ner
Retorna o nGmero de A? do dono de um arquivo" ou false em caso de erro. .s resultados
desta fun()o s)o arma,enadas e reutili,adas. Para utili,ar esta informa()o utili,e a fun()o
clearstatcac#e().
Ant fileoEner(string nome`arquivo)'
File$erms
Retorna as permiss<es de um arquivo" ou false em caso de erro. .s resultados desta fun()o
s)o arma,enadas e reutili,adas. Para utili,ar esta informa()o utili,e a fun()o
clearstatcac#e().
Ant fileperms(string nome`arquivo)'
Filesi?e
Retorna o taman#o de um arquivo" ou false em caso de erro. .s resultados desta fun()o s)o
arma,enadas e reutili,adas. Para utili,ar esta informa()o utili,e a fun()o clearstatcac#e().
Ant filesi,e(string nome`arquivo)'
Filet$e
Retorna o tipo de um arquivo. .s valores poss;veis s)o fifo" c#ar" dir" blocU" linU" file e
unUnoEn. Retorna false em caso de erro. .s resultados desta fun()o s)o arma,enadas e
reutili,adas. Para utili,ar esta informa()o utili,e a fun()o clearstatcac#e().
String filetype(string nome`arquivo)'
Floc(
Altera as op(<es de compartil#amento de um arquivo aberto" fa,endo com que todos os
programas que precisem usar esse arquivo usem as mesmas op(<es de compartil#amento.
Retorna true se tiver sucesso' caso contr/rio" retorna false.
Bool flocU(int fp" int operacao)'
Argumento ?escri()o
.pera()o %ipo de opera()o
I 2odo compartil#ado para leitura
Q 2odo e!clusivo para escrita
H 2odo livre (compartil#ado ou e!clusivo)
0 Adicione 0 para n)o bloquear o arquivo enquanto estiver alterando o modo

Fo$en
Abre um arquivo ou uma BR3. A fun()o retornar/ false se ocorrer erro.
Ant fopen(string nome`arquivo" string modo)'
Argumento ?escri()o
Come`arquivo Come do arquivo. A a()o a ser tomada depender/ de como o nome 1
iniciado. *e-a a bai!o as op(<es.
$#ttp99& Abre um cone!)o H%%P I.S com o servidor especificado e um ponteiro de
arquivo 1 retornado ao in;cio do te!to da resposta
$ftp99& Abre um cone!)o >%P com o servidor especificado e um ponteiro de
arquivo 1 retornado. . servidor deve suportar o modo passivo de >%P. a
poss;vel abrir os arquivos para leitura ou para escrita" mas n)o ambos ao
mesmo tempo
outro Se o nome come(ar com qualquer outra coisa" o arquivo ser/ aberto no
sistema de arquivos e um ponteiro de arquivo ser/ retornado.
2odo 2odo de abertura. Adicionalmente pode8se colocar a letra $b& no
parMmetro modo" informando que a ser processado 1 um arquivo bin/rio
$r& Somente leitura" a partir do inicio do arquivo.
$rf& 3eitura e escrita" a partir do inicio do arquivo.
$E& Somente escrita. A partir do inicio do arquivo e apagando todo o conteGdo
do arquivo. Se o arquivo n)o e!istir" a fun()o tentar/ cri/8lo.
$Ef& Para leitura e escrita. A partir do inicio do arquivo e apagando todo o
conteGdo do arquivo. Se o arquivo n)o e!istir" a fun()o tentar/ cri/8lo.
$a& Somente escrita. A partir do inicio do arquivo. Se o arquivo n)o e!istir" a
fun()o tentar/ cri/8lo.
$af& Para leitura e escrita. A partir do inicio do arquivo. Se o arquivo n)o e!istir"
a fun()o tentar/ cri/8lo.
F$asst&ru
3+ o conteGdo do arquivo" do ponteiro ate o fim do arquivo" mostrando os dados e fec#ando
o arquivo logo em seguida.
Ant passt#ru(int fp)'
F$uts
:screve o conteGdo de uma string em um arquivo
Ant fputs(int fp" string str" int mtaman#oo)'
Fread
3+ bytes de um arquivo
String fread(int fp" int mtaman#oo)'
Fsee(
2uda a posi()o do ponteiro de arquivo. S7 pode ser usada em arquivos do sistema de
arquivos local. Retorna S se tiver sucesso' caso contr/rio" retorna FI.
Ant fseeU(fp" int offset)'
Ftell
Retorna a posi()o do ponteiro do arquivo
Ant ftell(int fp)'
F%rite
:screve um nGmero especifico de bytes de uma string em um arquivo
Ant fErite(int fp" string str" int mnumbyteso)'
Is8dir
Retorna true se o nome do arquivo especificado e!istir e for um diret7rio. .s resultados
desta fun()o s)o arma,enadas e reutili,adas. Para atuali,ar esta informa()o utili,e
clearstatcac#e().
Bool is`dir(string nome`arquivo)'
Is8e<ecutable
Retorna true se o nome do arquivo especificado e!istir e for um arquivo e!ecut/vel. .s
resultados desta fun()o s)o arma,enadas e reutili,adas. Para atuali,ar esta informa()o
utili,e clearstatcac#e().
Bool is`e!ecutable(string nome`arquivo)'
Is8file
Retorna true se o nome do arquivo especificado e!istir e for um arquivo. .s resultados
desta fun()o s)o arma,enadas e reutili,adas. Para atuali,ar esta informa()o utili,e
clearstatcac#e().
Bool is`file(string nome`arquivo)'
Is8lin(
Retorna true se o nome do arquivo especificado e!istir e for um linU simb7lico. .s
resultados desta fun()o s)o arma,enadas e reutili,adas. Para atuali,ar esta informa()o
utili,e clearstatcac#e().
Bool is`linU(string nome`arquivo)'
Is8readable
Retorna true se o nome do arquivo especificado e!istir e puder ser lido. .s resultados desta
fun()o s)o arma,enadas e reutili,adas. Para atuali,ar esta informa()o utili,e
clearstatcac#e().
Bool is`readable(string nome`arquivo)'
Is %riteable
Retorna true se o nome do arquivo especificado e!istir e puder ser escrito. .s resultados
desta fun()o s)o arma,enadas e reutili,adas. Para atuali,ar esta informa()o utili,e
clearstatcac#e().
Bool is`Eriteable(string nome`arquivo)'
1in(
4ria um #ard linU
Ant linU(string target" string linU)'
1in(info
Retorna informa(<es sobre um linU
Ant linUinfo(string pat#)'
C(dir
4ria um diret7rio com o modo especificado em formato octal
Retorna true se tiver sucesso' caso contr/rio" retorna false.
Ant mUdir(string pat#name" modo)'
Pclose
>ec#a um ponteiro de arquivo aberto por popen()" retornando o status do processo
e!ecutado.
Ant pclose(int fp)'
Po$en
Abre um ponteiro para um processo de arquivo
Ant popen(string comando" string modo)'
>eadfile
3+ um arquivo e o envia para a sa;da padr)o do sistema' retorna o nGmero de bytes lidos
Ant readfile(string nome`arquivo)'
>eadlin(
Retorna o alvo(target) de um linU simb7lico
String readlinU(string pat#)'
>ename
Altera o nome de um arquivo. Retorna true se tiver sucesso' caso contr/rio false
Ant rename(string nome`anterior" string nome`novo)'
>e%ind
2uda a posi()o do ponteiro para o inicio do arquivo
Ant reEind(int fp)'
>mdir
Apaga um diret7rio va,io
Ant rmdir(string nome`diretorio)'
Set8file8buffer
?efine o taman#o do buffer de escrita de arquivos (default ] LIJQ bytes). Se definido como
S" ent)o as opera(<es de escrita n)o ser)o colocadas em buffer.
Stat
Retorna em um array as informa(<es sobre um arquivo
Array stat(string nome`arquivo) '
:lemento 4onteGdo
I ?evice
Q Anode
H 2odo de prote()o inode
0 CGmero de linUs
@ Adentifica()o do usu/rio propriet/rio do arquivo
X Adentifica()o do grupo propriet/rio do arquivo
R %ipo de dispositivo Anode(n)o dispon;vel no EindoEs)
L %aman#o(em bytes)
J ?ata9#ora do Gltimo acesso
IS ?ata9#ora da Gltima altera()o no arquivo
II ?ata9#ora da Gltima altera()o de estado do arquivo
IQ %aman#o de bloco para filesystem A9. (n)o dispon;vel no EindoEs)
IH CGmero de blocos alocados
Smlin(
4ria um linU simb7lico entre o alvo e!istente e o nome especificado
Ant symlinU(string target" string linU)'
Dem$nam
Retorna um nome de arquivo tempor/rio Gnico no diret7rio especificado com um prefi!o
determinado pelo parMmetro prefi!o
String tempnam(string diret7rio" string prefi!o)'
Douc&
Altera a data9#ora de modifica()o de um arquivo. Se o arquivo n)o e!istir" ser/ criado.
Retorna true se tiver sucesso' caso contr/rio" retorna false.
Ant touc#(string nome`arquivo" int time)'
@mas(
Altera o umasU atual. Nuando o PHP 1 um m7dulo do servidor" o umasU 1 restaurado no
fim de cada request.
Ant umasU(int masU) '
@nlin(
:limina um nome de arquivo(linU)
Ant unlinU(string nome8arquivo)'
Opes e informaes do PHP
2rror8log
:nvia uma mensagem de erro para o registro de erros do servidor Eeb" para uma porta %4P
ou para um arquivo
Ant error`log(string mensagem" int tipo`mensagem" string mdestinoo" string m#eaderse!traso)'
Argumento ?escri()o
2ensagem 2ensagem de erro
%ipo`mensagem %ipo da mensagem
S A mensagem 1 enviada para o log do p#p
I A mensagem 1 enviada por email para o endere(o indicado no argumento
destino
Q A mensagem 1 enviada atrav1s de uma cone!)o remota de debugging do
PHP.
H A mensagem 1 adicionada ao arquivo indicado no argumento destino.
?estino ?estino da mensagem. ?epende do tipo da mensagem
Headerse!tras Argumento opcional utili,ado quando o argumento tipo`mensagem for I.
2rror8re$orting
?efine quais error devem ser reportados pelo PHP
Ant error`reporting(int mn;velo)'
Argumento ?escri()o
C;vel *alor obtido com a soma dos c7digos dos erros que devem ser reportados
I :`:RR.R F :rros que o PHP n)o pode ignorar" como fal#as de aloca()o de
mem7ria" etc.
Q :`=ARCACO F :rror que o PHP suspeita poderem causar um erro mais grave
0 :`PARS: F :rro de processamento do programa
L :`C.%A4: F Avisos de que certa parte de um c7digo pode causar um erro mais
grave
IX :`4.R:`:RR.R F :rros graves com os :`:RR.R" mas s)o gerados pela
base PHP.
HQ :`4.R:`=ARCACO F Poss;veis erros no c7digo" mas gerados pela base PHP
2<tension8loaded
Retorna true se uma e!tens)o foi carregada. Btili,e a fun()o p#pinfo() para ver os nomes
das e!tens<es.
Bool e!tension`loaded(string nome`e!tens)o)'
Bet8cfg8"ar
Retorna o valor de uma op()o de configura()o do PHP" ou false se ocorrer um erro
String get`cfg`var(string nome`vari/vel) '
Bet8current8user
Retorna o nome do propriet/rio do script PHP corrente
String get`current`user(void)'
Bet8magic8*uotes8g$c
Retorna o status da op()o magic`quotes`gpc do arquivo de configura()o p#p.ini (S para
off" I para on).
3ong get`magic`quotes`gpc(void) '
Bet8magic8*uotes8runtime
Retorna o status da op()o magic`quotes`runtime do arquivo de configura()o p#p.ini (S
para off" I para on).
3ong get`magic`quotes`runtime(void) '
Beten"
Retorna o valor de uma vari/vel de ambiente" ou false se ocorrer um erro. Para ver a lista de
vari/veis de ambiente utili,e a fun()o p#pinfo().
String getenv(string nome`vari/vel)'
Betlastmod
Retorna a data9#ora da Gltima modifica()o da p/gina corrente ou false se ocorrer um erro
Ant getlastmod(void)'
Betminode
Retorna o inode do script corrente" ou false se ocorrer um erro.
Ant getmyinode(void)'
Betm$id
Retorna o A? de processo corrente do PHP" ou false se ocorrer um erro
Ant getmypid(void)'
Betmuid
Retorna o A? do usu/rio do script PHP corrente" ou false ocorrer um erro
int getmyuid(void) '
Betrusage
Retorna informa(<es da utili,a()o dos recursos atuais em um array
Array getrusage(int mE#oo)'
P&$info
Retorna diversas informa(<es sobre o PHP
Ant p#pinfo(void)'
P&$"ersion
Retorna a vers)o do PHP instalada.
String p#pversion(void)'
Puten"
Atribui um valor a uma vari/vel de ambiente
*oid putenv(string setting)'
Set8magic8*uotes8runtime
Altera a configura()o atual da op()o magic`quotes`runtime do arquivo de configura()o
p#p.ini (S para off" I para on)
3ong set`magic`quotes`runtime(int nova`conf)'
Set8time8limit
3imita o tempo 2a!imo de e!ecu()o do script. Se definido como S(,ero) o script ser/
e!ecutado indefinidamente.
*oid set`time`limit(int num`segundos)'
5atem!tica
Abs
Retorna o valor absoluto de um nGmero.
2i!ed abs(mi!ed nGmero)'
Acos
Retorna o arco8coseno de um Mngulo em radianos
>loat acos(float arg)'
Asin
Retorna o arco8seno de um Mngulo em radianos
>loat asin(float arg)'
Atan
Retorna o arco8tangente de um Mngulo em radianos
>loat atan(float arg)'
Atan4
Retorna o arco8tangente de duas vari/veis
>loat atanQ(float y" float !)'
'ase8con"ert
Retorna uma string com um nGmero convertido para outra base num1rica.
String base`convert(string nGmero" int base`ant" int nova`base)'
'indec
Retorna um nGmero convertido de bin/rio para decimal
Ant bindec(string string`bin/rio)'
Argumento ?escri()o
String`bin/rio String contendo a representa()o bin/ria de um nGmero
)eil
Retorna o pr7!imo nGmero inteiro maior ou igual ao nGmero especificado
Ant ceil(float nGmero)'
)os
Retorna o co8seno de um Mngulo em radianos
>loat cos(float arg)'
Aecbin
Retorna uma string contendo a representa()o bin/ria de um nGmero
String decbin(int nGmero)'
Aec&e<
Retorna uma string contendo a representa()o #e!adecimal de um nGmero
String dec#e!(int nGmero)'
Aecoct
Retorna uma string contendo a representa()o octal de um nGmero
String decoct(int nGmero)'
2<$
Retorna a constante e elevada 6 pot+ncia especificada
>loat e!p(float arg)'
Floor
Retorna o pr7!imo nGmero inteiro menor ou igual ao nGmero especificado
Ant floor(float nGmero)'
Betrandma<
Retorna o valor m/!imo que pode ser gerado pela fun()o rand()
Ant getrandma!(void)'
0e<dec
Retorna um nGmero convertido de #e!adecimal para decimal.
Ant #e!dec(string string`#e!a)'
1og
Retorna o logaritmo natural de um nGmero
>loat log(float arg) '
1og1/
Retorna o logaritmo base IS de um nGmero
>loat logIS(float arg) '
Ca<
Retorna o maior dentre os especificados
2i!ed ma!(mi!ed argI" mi!ed argQ" mi!ed argn)'
Cin
Retorna o menor dentre os especificados
2i!ed min(mi!ed argI" mi!ed argQ" mi!ed argn)'
Ct8rand
Oera um nGmero aleat7rio mais confi/vel no intervalo especificado
Ant mt`rand(int mlimite`info" int mlimite`supo)'
Ct8srand
Altera a semente do gerador de nGmeros aleat7rios para a fun()o mt`rand()
*oid mt`srand(int semente) '
Ct8getrandma<
Retorna o maior valor poss;vel que a fun()o mt`rand() pode retornar
Ant mt`getrandma!(void)'
Number8format
Retorna a vers)o formatada de um nGmero" colocando os separadores de mil#ares e o
separador decimal
String number`format(float nGmero" int decimais" string sep`dec" string sep`mil#ar )'
#ctdec
Retorna um numero convertido de octal para decimal
Ant octdec(string octal`string)'
Pi
Retorna o valor da constante pi
?ouble pi(void)'
Po%
Retorna o resultado de uma base elevada a um e!poente
>loat poE(float base" float e!poente)'
>and
Retorna um nGmero aleat7rio dentro de um intervalo especificado
Ant rand(int mlimit`info" int mlimi`supo)'
>ound
Retorna o valor de um nGmero arredondado para o nGmero inteiro mais pr7!imo. Se o
nGmero estiver e!atamente entre dois nGmeros inteiros" o resultado ser/ sempre o nGmero
inteiro par
?ouble rand(double nGmero)'
Sin
Retorna o seno de um Mngulo em radianos
>loat sin(float arg)'
S*rt
Retorna a rai, quadrada
>loat sqrt(float arg )'
Srand
Altera a semente do gerador de nGmeros aleat7rios para a fun()o
*oid srand(int semente)'
Dan
Retorna a tangente de um Mngulo em radianos
>loat tan(float arg)'
"riptografia
Ccr$t8cbc
4riptografa9descriptografa dados no modo 4B4
Ant mcrypt`cbc(int cifra" string c#ave" string dados" int modo" string vetor`ini)'
Ccr$t8cfb
4riptografa9descriptografa dados no modo 4>B
Ant mcrypt`cfb(int cifra" string c#ave" string dados" int modo" string vetor`ini)'
Ccr$t8create8i"
4ria um vetor de iniciali,a()o (vetor`ini) de uma origem aleat7ria" que 1 utili,ado como
argumento nas fun(<es de criptografia.
String mcrypt`create`iv(int taman#oiv" int origemiv )'
Ccr$t8ecb
4riptografa9descriptografa dados no modo :4B
Ant mcrypt`ecb(int cifra" string c#ave" string dados" int modo" string vetor`ini)'
Ccr$t8get8ci$&er8name
Retorna o nome da cifra especificada" ou false se a cifra n)o e!istir
String mcrypt`get`cip#er`name(int cifra)'
Ccr$t8get8bloc(8si?e
Retorna o taman#o (em bytes) do bloco de uma cifra
Ant mcrypt`get`blocU`si,e(int cifra)'
Ccr$t8get8(e8si?e
Retorna o taman#o (em bytes) da c#ave de uma cifra
Ant mcrypt`get`Uey`si,e(int cifra)'
Ccr$t8ofb
4riptografa9descriptografa dados no modo .>B
Ant mcrypt`ofb(int cifra" string c#ave" string dados" int modo" string vetor`ini)'
<unes diversas
)onnection8aborted
Retorna true se um cliente desconectou
Ant connection`aborted(void)'
)onnection8status
Retorna o status de uma cone!)o
Ant connection`status(void)'
)onnection8timeout
Retorna true se o tempo de e!ecu()o do script foi e!cedido
Ant connection`timeout(void)'
Al
4arrega" em tempo de e!ecu()o" uma e!tens)o do PHP definida em library. A diretiva de
configura()o e!tension`dir do arquivo de configura()o p#p.ini define em qual diret7rio o
PHP deve procurar as e!tens<es carregadas dinamicamente
Ant dl(string library) '
2"al
Processa uma string como c7digo PHP
*oid eval(string string`c7digo)'
Aie
Amprime uma mensagem e termina o script PHP
*oid die(string mensagem)'
2<it
%ermina o script PHP atual
*oid e!it(void)'
Function8e<ists
Retorna true se uma determinada fun()o foi definida' caso contr/rio" retorna false
Ant function`e!ists(string nome`fun()o)'
Ignore8user8abort
4onfigura o processador do PHP para n)o cancelar o script caso o cliente desconecte antes
da finali,a()o do mesmo
Ant ignore`user`abort(int mconfigo)'
I$tc$arse
Retorna uma lista das tags de um bloco bin/rio AP%4 (#ttp99EEE.!e.net9iptc9)
Array iptcparse(string bloco`iptc)'
1ea(
3impa a mem7ria desperdi(ada
*oid leaU(int numbytes)'
Cail
:nvia um email para um ou mais destinat/rios
Bool mail(string dest" string assunto" string mensagem" string m#eaders`adico)'
Argumento ?escri()o
?est :ndere(o de email dos
destinat/rios(separados por $"&)
Assunto Assunto do email
2ensagem 4onteGdo do email
Headers`adic :specifica #eaders adicionais que devem ser
inseridas no fim do #eader padr)o. 2Gltiplos
#eaders podem ser especificados e devem ser
separados por neEline($cn&)
:!emplo
Wdestino ] $Come?estino Zendere(o@dominio.com.br\&'
Wremetente ] $ComeRemetente Zremetente@dominio.com.br\&'
Wassunto ] $assunto do email&'
mail(Wdestino"&Wassunto&" Wmensagem" $>rom Wremetente cn& )'
Pac(
compacta dados em uma string bin/ria
string pacU(string formato" mi!ed margso...) '
>egister8s&utdo%n8function
Registra uma fun()o para e!ecu()o ao t1rmino do script
Ant register`s#utdoEn`function(string nome`funcao)'
Seriali?e
Oera uma apresenta()o arma,en/vel de um valor
String seriali,e(mi!ed valor)'
Slee$
Atrasa a e!ecu()o por um tempo determinado (em segundos)
*oid sleep(int num`segundos)
@n$ac(
?escompacta dados numa string bin/ria
Array unpacU(string formato" string data)'
@nseriali?e
Oera um valor v/lido a partir de uma string em representa()o para arma,enameto
2i!ed unseriali,e(string str)'
@ni*uid
Oera um identificador Gnico baseado na #ora atual em microsegundos
Ant uniquid (string prefi!o)'
@slee$
Atrasa a e!ecu()o por um tempo determinado (em microsegundos)
*oid usleep(int num`microsegundos)'
4ede
)&ec(dnsrr
*erifica se um nome de servidor ou endere(o de Ap e!iste nos registros de ?CS
Ant c#ecUdnsrr(string #ost" string mtipoo)
)loselog
>ec#a uma cone!)o ao #ist7rico do sistema (system logger)
Ant closelog(void) '
Aebugger8on
Habilita o depurador interno do PHP
Ant debugger`on(string endere(o)'
Aebugger8off
?esabilita o depurador interno do PHP
Ant debugger`off(void)'
Fsoc(o$en
Abre uma cone!)o com um servidor
Ant fsocUopen(string #ostname" int port" int merrnoo" string merrstro" double mtimeouto)'
Bet&ostbaddr
Retorna o nome do servidor de um endere(o AP
String get#ostbyaddr(string endere(o`AP)'
Bet&ostbname
Retorna o endere(o AP de um servidor
String get#ostbyname(string #ostname)'
#$enlog
Abre uma cone!)o ao #ist7rico do sistema(system logger) para um programa
Ant openlog(string ident" int op()o" int facilidade)'
Pfsoc(o$en
Abre uma cone!)o persistente com um servidor
Ant pfsocUopen(string #ostname" int port" int merrnoo" string merrstro" double mtimeouto)'
Set8soc(et8bloc(ing
?efine o modo de cone!)o com o servidor (bloqueado ou n)o bloqueado)
Ant set`socUet`blocUing(int socUet" int modo)'
Sslog
Oera uma mensagem de #ist7rico (log) do sistema
Ant syslog(int prioridade" string mensagem)'
,'presses regulares
2reg
:!press)o regular de busca9compara()o.
Ant ereg(string e!pr`regular" string te!to" array mregso)'
Argumento ?escri()o
:!pr`regular :!press)o regular
%e!to %e!to para busca
Regs .p(<es diversas. *e-a $man rege!&
2reg8re$lace
:!press)o de busca9substitui()o. Retorna a string modificada
String ereg`replace(string e!pr`regular" string te!to`subst" string te!to) '
Argumento ?escri()o
:!pr`regular :!press)o regular
%e!to`subst %e!to para substitui()o
%e!to %e!to a ser substitu;do
2regi
Similar 6 fun()o ereg()" e!ceto que n)o 1 sens;vel a letras maiGsculas e minGsculas
Ant eregi(string e!pr`regular" string te!to" array mregso)'
2regi8re$lace
Similar 6 fun()o ereg`replace()" e!ceto que n)o 1 sens;vel a letras maiGsculas e minGsculas
String eregi`replace(string e!pr`regular" string te!to`subst" string te!to) '
S$lit
:!press)o regular para dividir uma string em partes e colocar as partes em um array
Array split(string e!pr`regular" string te!to" int mlimiteo)'
Argumento ?escri()o
:!pr`regular :!press)o regular
%e!to String a ser dividida
3imite 3imitador (caractere que caracteri,a os pontos
de divis)o na string)
S*l8regcase
Retorna uma e!press)o regular para busca n)o8sens;vel a letras maiGsculas e minGsculas
String sql`regcase(string string)'
Tratamento de sesses
Session8decode9P0P:;
?ecodifica os dados de uma sess)o em uma string
Bool session`decode(string dados)'
Session8destro9P0P:;
?estr7i os dados registrados associados 6 sess)o atual
Bool session`destroy(void)'
Session8encode9P0P:;
4odifica os dados de uma sess)o
Bool session`encode(void) '
Session8start9P0P:;
Aniciali,a os dados de uma sess)o
Bool session`start(void)'
Session8id9P0P:;
Retorna ou muda o identificador da sess)o atual
String session`id(string mido)'
Session8is8registered9P0P:;
?escobre se uma vari/vel foi registrada na sess)o
Bool session`is`registered(string nome)'
Session8module8name9P0P:;
Retorna ou muda o nome do m7dulo da sess)o atual
String session`module`name(string mm7duloo)'
Session8name9P0P:;
Retorna ou muda o nome da sess)o atual
String session`name(string mnomeo)'
Session8register9P0P:;
Registra uma vari/vel com a sess)o atual
Bool session`register(string nome)'
Session8sa"e8$at&9P0P:;
Retorna ou muda o pat# de grava()o da sess)o atual
String session`save`pat#(string mpat#o)'
Session8unregister9P0P:;
?escarta uma vari/vel da sess)o atual
Bool session`unregister(string nome)'
Strings
Addslas&es
4oloca barras invertidas antes dos caracteres especiais ap7strofo(p)" aspas($)" barra
invertida (c) e CB3
String addslas#es(string str)'
'in4&e<
4onverte dados bin/rios em representa()o #e!adecimal
String binQ#e!(string str)'
)&o$
Remove espa(os em branco em seqn+ncia
String c#op(string str)'
)&r
Retorna um caractere especifico dado um c7digo AS4AA
String c#r(int c7d`ascii)'
)&un(8s$lit
?ivide uma string em peda(os de taman#o $compr&" colocando a string $fim& no fim de
cada peda(o e retornando tudo em uma string. . parMmetro $compr& tem valor padr)o de
RX e o parMmetro $fim& tem valor padr)o de $crcn& caso esses n)o se-am especificados.
String c#uncU`split(string te!to" int mcompro" string mfimo)'
)on"ert8cr8string
4onverte uma string de um con-unto de caracteres cir;licos em outro
String convert`cyr`string(string str" string de" string para)'
)r$t
Retorna uma string criptografada atrav1s do modo ?:S.
String crypt(string str" string msalfo)'
2c&o
Amprime uma ou mais strings
:c#o (string argI" string argn....)'
2<$lode
Retorna um array contendo as partes da string com valores separados por um separador
Array e!plode(string separador" string str) '
Flus&
:nvia todo o buffer de impress)o ao broEser cliente
*oid flus#(void)'
Bet8meta8tags
:!trai todas as tags Zmeta\ de um arquivo e retorna um array
Array get`meta`tags(string nome`arquivo" int muse`include`pat#o) '
0tmlentities
4onverte todos os caracteres aplic/veis em tags H%23
String #tmlentities(string str)'
0tmls$ecialc&ars
4onverte caracteres especiais em tags H%23
String #tmlspecialc#ars(string str)'
4aracter ?escri()o
pge pgamp'e
p&e pgquot'e
pZe pglt'e
p\e pggt'e
Im$lode
Retorna uma string contendo a representa()o string de todos os elementos de um array
separados pelo argumento glue
String implode(string glue" array fatias)'
Eoin
. mesmo que implode()
String -oin(string glue" array fatias)'
1trim
Retorna uma string sem os espa(os iniciais
String ltrim(string str)'
CdF
Retorna o #as# 2?@ de uma string
String md@(string str)'
Nl4br
Retorna uma string com tags ZBR\ inseridos ap7s os caracteres de nova lin#a
String nlQbr(string str)'
#rd
Retorna o valor AS4AA do primeiro caractere de uma string
Ant ord(string str)'
Parse8str
4onverte uma string de parMmetros no formato das BR3s vindas de formul/rios H%23 em
vari/veis
*oid parse`str(string str)'
:!emplo
Wstr ] $form]firmgoperation]insertginde!]S&'
parse`str(Wstr)'
ec#o Wform' 99imprime $firm&
ec#o Woperation' 99imprime $insert&
ec#o Winde!' 99imprime $S&
Print
imprime uma string
print(string arg)'
Printf
Amprime uma string formatada
Ant printf(string formato" mi!ed margso...)'
3uoted8$rintable8decode
4onverte uma string imprim;vel em uma string de L bits
String quoted`printable`decode(string str)'
3uotemeta
4oloca uma barra invertida antes dos caracteres meta ( cc f k V m i o ( W ) ) de uma string
String quotemeta(string str)'
>a%urldeconde
?ecodifica uma BR3" retornando uma BR3 com os caracteres na forma literal
String raEurldecode(string str)'
>a%urlenconde
4odifica uma BR3" retornando uma BR3 com os caracteres n)o8alfanum1ricos convertidos
em c7digos
String raEurlencode(string str)'
Setlocale
Altera as informa(<es de localidade
String setlocale(string categoria" string locale)'
Similar8te<t
4alcula a similaridade entre duas strings
Ant similar`te!t(string strI" string strQ" double mporcentagemo)'
Sounde<
4alcula a c#ave sounde! de uma string
String sounde!(string str)'
S$rintf
Retorna uma string formatada
String Sprintf(string formato" mi!ed margso)'
Strc&r
. mesmo que strstr()
String strc#r(string #aystacU" string needle)'
Strcm$
4ompara duas strings" retornando um valor Z S se strI for menor que strQ' \ S se strI for
maior que strQ" e S se elas forem iguais
Ant strcmp(string strI" string strQ)'
Strcs$n
Retorna o comprimento do segmento inicial de strI que n)o contem nen#um dos caracteres
de strQ
Ant strcspn(string strI" string strQ)'
Stri$8tags
Retorna uma string sem as tags H%23 e PHP
String strp`tags(string str)'
Stri$slas&es
Apaga as barras invertidas de caracteres espec;ficos
String stripslas#es(string str)'
Strlen
Retorna o comprimento de uma string
Ant strlen(string str)'
Str$os
Retorna a posi()o da primeira ocorr+ncia de uma string(strQ) dentro de outra (strI)
Ant strpos(string strI" string strQ" int moffseto)'
Strr$os
Retorna a posi()o da Gltima ocorr+ncia de uma string(strQ) dentro de outra(strI)
Ant strrpos(string strI" c#ar strQ)'
Strrc&r
Retorna a parte do te!to que vai do fim da string at1 a primeira ocorr+ncia do caracter
$car&. Retorna false se n)o #ouver nen#uma ocorr+ncia de car
String strrc#r(string te!to" string car)'
Strre"
Anverte uma string
String strrev(string str)'
Strs$n
Retorna o comprimento do segmento inicial de strI que consiste inteiramente de caracteres
em strQ
Ant strspn(string strI" string strQ)'
Strstr
Retorna a parte de strI que vai da primeira ocorr+ncia de strQ em strI at1 o fim de strI
String strstr(string strI" string strQ)'
Strto(
Separa uma string em partes divididas por argQ
String strtoU(string argI" string strQ) '
Strtolo%er
%ransforma as letras em uma string para minGscula.
String strtoloEer(string str) '
Strtou$$er
%ransforma as letras em uma string para maiGscula.
String strtoupper(string str) '
Str8re$lace
Substitui todas as ocorr+ncias de uma substring por outra
String str`replace(string str`ant" string novo`str" string str) '
Argumento ?escri()o
Str`ant Substring a ser substitu;da
Covo`str Substring que substituir/ a anterior
Str String original
Strtr
%radu, todas as ocorr+ncias de cada caractere em de pelo caractere correspondente em para
na string str
String strtr(string str" string de" string para)'
Substr
Retorna parte de uma string
String substr(string.str" int inicio" int mtaman#oo)'
Argumento ?escri()o
Anicio posi()o inicial
%aman#o CGmero de caracteres a serem retornados
Drim
Apaga os espa(os em branco do inicio e fim de uma string.
String trim(string str)'
@cfirst
%ransforma o primeiro caractere de uma string em maiGsculo
String ucfirst(string str) '
@c%ords
%ransforma o primeiro caractere de cada palavra de uma string em maiGsculo
String ucEords(string str)'
<unes para vari!veis
Aouble"al
Retorna o valor em ponto flutuante de uma vari/vel
?ouble doubleval(mi!ed var) '
2m$t
Retorna false se var estiver atribu;da' caso contr/rio retorna true
Ant empty(mi!ed var) '
Bett$e
Retorna o tipo de uma vari/vel
String gettype(mi!ed var)'
Int"al
Retorna o valor em inteiros de uma vari/vel" utili,ando uma base especificada. . padr)o da
base 1 IS
Ant intval(mi!ed var" int mbaseo)
Is8arra
Retorna true se a vari/vel for do tipo array
Ant is`array(mi!ed var)'
Is8double
Retorna true se a vari/vel for do tipo double
Ant is`double(mi!ed var)'
Is8float
Retorna true se a vari/vel for do tipo float
Ant is`float(mi!ed var)'
Is8int
Retorna true se a vari/vel for do tipo inteiro
Ant is`int(mi!ed var)'
Is8integer
. mesmo que is`int()
Ant is`integer(mi!ed var)'
Is8long
. mesmo que is`int()
Ant is`long(mi!ed var)'
Is8ob.ect
Retorna true se a vari/vel for um ob-eto
Ant is`ob-ect(mi!ed var)'
Is8real
Retorna true se a vari/vel for do tipo real
Ant is`real(mi!ed var)'
Is8string
Retorna true se a vari/vel for do tipo string
Ant is`string(mi!ed var)'
Isset
Retorna true se uma vari/vel e!istir
Ant isset(mi!ed var)'
Sett$e
Altera o tipo de uma vari/vel. Retorna true se tiver sucesso' caso contr/rio" retorna false.
Ant settype(string var" string tipo)'
%ipos permitidos
Anteger
?ouble
String
Array
.b-eto
Str"al
Retorna o valor em string de uma vari/vel
String strval(mi!ed var)'
@nset
:!clui uma vari/vel
Ant unset(mi!ed var)'
1:. >efer!ncias na Internet
Site oficial do PHP #ttp99EEE.br.p#p.net
#ttp99EEE.p#p.net
Site do pro-eto Tend que
originou o PHP0
#ttp99EEE.,end.org
Site do servidor Eeb Apac#e"
que 1 amplamente utili,ado e
compat;vel com o PHP
#ttp99EEE.apac#e.org
Site da lista principal de
discuss)o de PHP no Brasil
#ttp99EEE.allfinder.com.br9p#p
Site com diversos e!emplos de
PHP. ttimo para iniciantes
#ttp99EEE.Eeberdev.com
Site com diversas classes em
PHP para utili,ar
#ttp99EEE.t#eEebmasters.net9p#p
Site com diversos artigos e
tutoriais
#ttp99EEE.p#pbuilder.com
Artigos e informa(<es sobre
PHP para =eb2asters
#ttp99EEE.devs#ed.com9Server`Side9PHP
%utorial de PHP com 2ySN3 #ttp99EEE.#otEired.com9EebmonUey9JJ9QI9inde!Qa.#tml
4omo criar um site de busca"
como o ra#ooj" em PHP e
2ySN3.
#ttp99Eebreference.com9perl9!#oo9p#pI
?iversos pro-etos" tutoriais e
informa(<es sobre o PHP
#ttp99EEE.p#pEi,ard.net
PHP PnoEledge Base #ttp99e8gineer.com9p#pUb