Recomende aos seus amigos do Facebook
terça-feira, 28 de maio de 2013
sábado, 27 de abril de 2013
terça-feira, 16 de abril de 2013
terça-feira, 9 de abril de 2013
sexta-feira, 22 de março de 2013
Array
Array_merge
Retorna um array
resultante da concatenação de dois ou mais arrays.
Array
array_merge(array matriz1, array matriz2, [...]);
Array_pop
Retorna e remove o
ultimo elemento de um array.
Mixed
array_pop(array matriz1);
Array_push
Acrescente elementos no
final de um array. Retorna o numero de elementos de uma array.
Int
array_push(array matriz1, mixed elem1,[...]);
Array_shift
Retorna e remove o
primeiro elemento de um array
Mixed
array_shift(array array);
Array_slice
Retorna uma seqüência
de elementos de um array.
Array array_slice(array
matriz, int inicio, int [tamanho]) ;
Argumento Descrição
Matriz o array de
onde serão copiados os elementos
Início Posição
inicial no array
tamanho Número de
elementos a serem retornados
Array_splice
Remove elementos de um
array e, opcionalmente, substitui os elementos removidos por outros.
Array
array_splice(array matriz, int início, int [tamanho], array
[substituição]);
Argumento
|
Descrição
|
Matriz
|
o array de onde
serão copiados os elementos
|
Início
|
Posição inicial no array entrada
|
Tamanho
|
Número de elementos a serem removidos
|
Substituição
|
Arrays dos elementos que substituirão os
elementos removidos
|
Array_unshift
Acrescenta elementos no
início de um array. Retorna o número de elementos de uma array.
Int
array_unshift(array matriz, mixed var, [...]);
Array_values
Retorna os valores de
um array
Array
array_values(array matriz);
Array_walk
Aplica uma função
para cada elemento de um array.
Int
array_walk(array matriz, string nomefunc, mixed dadosextras);
Function
nomefunc($item, $índice, $dadosextras)
Exemplo:
$matriz =
array(“1”=>”monitor”,”2”=>”Placa de vídeo”,
“3”=> “mouse”);
//esta é uma das
funções chamadas pelo array_walk
function
imprime_item($item, $índice,$dados){
echo “$índice =
$item($dados)”;
}
//esta é uma das
funções chamadas pelo array_walk
function
atualizar_item(&$item, $índice, $dados){
$item = “$item
($dados)“;
}
array_walk($matriz,’imprime_item’,’impresso’);
array_walk($matriz,’atualizar_item’,’atualizado’);
array_walk($matriz,’imprime_item’,’atualizado’);
domingo, 17 de março de 2013
ARRAY
Retorna um array de
parâmetros. Índices podem ser atribuídos aos parâmetros através
do operador.
Array array(...);
Exemplo:
$arr = array(“palavras”
=> array(“1” => “index”,”2” => “main“,”3”
=> “default”),”tradução” =>
array(“índice”,”principal”,”padrão”) );
BD COMPATIVEIS COM PHP
Os bancos de dados
atualmente suportados pelo PHP são: Adabas D, dBase, mSQL,
InterBase, SyBase, Empress, MySQL, Velocis, FilePro, Oracle, dbm,
Informix,
PostgreSQL.
ALTER
ALTER é a maneira de alterar uma estrutura da tabela. Você
simplesmente indica que tabela está alterando e redefine suas
especificações. Novamente, eis os produtos SQL diferem na sutileza.
ALTER TABLE table RENAME AS new_table;
ALTER TABLE new_table ADD COLUMN col3 VARCHAR(50) ;
ALTER TABLE new_table DROP COLUMN col2;
DROP
DROP pode ser utilizado para excluir completamente uma tabela ou
banco de dados e todos os seus dados associados. Ele não é um
comando mais sutil:
DROP TABLE table;
DROP DATABASE db_name
Obviamente é necessário muito cuidado com essa instrução.
CREATE
CREATE é utilizado para fazer uma tabela ou banco de dados
completamente novo. Realmente criar um banco de dados implica um
pouco mais que apenas atribuir um nome.
CREATE DATABASE db_name;
Todo o trabalho está em definir as tabelas e as colunas. Primeiro
você declara o nome da tabela e depois deve detalhar os tipos
específicos de colunas dessa tabela no que é chamado de “definição
de criação”.
CREATE TABLE table {
->id_col INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
->col1 TEXT NULL INDEX,
->col2 DATE NOT NULL
};
Diferentes servidores de SQL têm tipos de dados e opções de
definição ligeiramente diferentes, então a sintaxe de um não pode
transferir exatamente para outro.
DELETE
DELETE é bastante
auto-explicativa: você a utiliza para excluir permanentemente as
informações do banco de dados. A sintaxe é:
DELETE datapoint FROM
table WHERE condition;
A coisa mais
importante a lembrar-se é da condição – se você não configurar
uma, excluirá cada entrada nas colunas especificadas do banco de
dados, sem uma confirmação ou uma segunda chance em muitos casos.
O que há em comum entre: DELETE x UPDATE
Você deve lembrar-se de utilizar uma condição toda vez que
atualizar ou excluir. Se você não fizer isso, todas as linhas na
tabela sofrerão a mesma alteração ou exclusão. Mesmo os
programadores mais experientes esquecem a condição, para seu grande
constrangimento profissional. Cuidado para não esquecer a condição.
Update
UPDATE
é utilizado para editar informações que já estão no banco de
dados sem excluir qualquer quantidade significativa. Em outras
palavras, você pode seletivamente alterar algumas informações sem
excluir um registro antigo inteiro e inserir um novo. A sintaxe é:
UPDATE table SET campo1
= “val1”, campo2 = “val2”,campo3=”val3” WHERE condição;
A instrução
condicional é exatamente como uma condição SELECT, como WHERE
id=15 ou WHERE gender=”F”.
INSERT
O comando que você
precisa para colocar novos dados em um banco de dados é o INSERT.
Eis a sintaxe básica:
INSERT INTO tabela
(campo1,campo2,campo3) VALUES($val1,$val2,$val3);
Obviamente as colunas
e seus valores devem corresponder; se você misturar os seus itens de
array, nada de bom acontecerá. Se algumas linhas não tiverem
valores para alguns campos, você precisará utilizar um valor nulo,
vazio ou auto-incrementado – e, em um nível mais profundo, você
pode ter assegurado de antemão que os campos possam ser nulos ou
auto-incrementáveis. Se isso não for possível, você simplesmente
deve omitir qualquer coluna que você deseja que assuma o padrão de
valor vazio em uma instrução de INSERT.
Um desdobramento da
instrução INSERT básica é INSERT INTO... SELECT. Isso apenas
significa que você pode inserir os resultados de uma instrução
SELECT:
INSERT
INTO customer(birthmonth, birthflower, birthstone) SELECT * FROM
birthday_info WHERE birthmonth = $birthmonth;
Entretanto,
nem todos os bancos de dados de SQL têm essa capacidade. Além
disso, é preciso ser cuidadoso com esse comando porque você pode
facilmente causar problemas para você mesmo. Em geral, não é uma
boa idéia selecionar a partir do mesmo banco de dados em que você
esta inserindo.
Subseleções
As
subseleções são mais uma conveniência que uma necessidade. Elas
podem ser muito úteis se você estiver trabalhando com enormes lotes
de dados; mas é possível obter o mesmo resultado com duas seleções
mais simples
sábado, 16 de março de 2013
SELECT
SELECT é o comando
principal de que você precisa para obter informações fora de um
banco de dados de SQL. A sintaxe básica é extremamente simples:
SELECT campo1, campo2,
campo3 FROM tabela WHERE condições
Em alguns casos, você
desejará pedir linhas inteiras em vez de selecionar partes
individuais de informações. Essa prática é obsoleta por razões
muito boas(ela pode ser mais lenta que solicitar apenas os dados de
que você precisa e pode levar a problemas se você reprojetar a
tabela) , mas ainda é utilizada e, portanto, precisamos menciona-la.
Uma linha inteira é indicada utilizando o símbolo do asteristico:
SELECT * FROM
minha_tabela WHERE campo1 = “abcdef”
SQL
O que é?
De acordo com Andrew
Taylor, inventor original da linguagem SQL, o SQL não significa
“Structured Query language” (ou qualquer outra coisa nesse
sentido). Mas para o resto do mundo, esse é seu significado agora.
Como você poderia esperar desse (não-)título, o SQL representa um
método mais geral e mais estrito de armazenamento de dados que o
padrão anterior de banco de dados não-relacionais no estilo dbm.
SQL não é ciência
espacial. As quatro instruções básicas de manipulação de dados
suportadas essencialmente por todos os bancos de dados de SQL são
SELECT, INSERT, UPDATE e DELETE. SELECT recupera os dados do banco de
dados, INSERT insere em uma nova entrada, UPDATE edita partes da
entrada no lugar e DELETE exclui uma entrada completamente.
A maior parte da
dificuldade reside em projetar bancos de dados. O projetista deve
pensar muito seriamente sobre a melhor maneira de representar cada
parte de dados e relacionamento para a utilização planejada. É um
prazer programar com bancos de dados bem projetados, enquanto os
pobremente projetados podem deixar você careca quando contemplar as
numerosas conexões e horrorosas junções.
Os bancos de dados SQL
são criados pelas chamadas instruções de estrutura de dados. As
mais importantes são CREATE, ALTER e DROP. Como se poderia imaginar,
CREATE DATABASE cria um novo banco de dados e CREATE TABLE define uma
nova tabela dentro de um banco de dados. ALTER altera a estrutura de
uma tabela. DROP é a bomba nuclear entre os comandos de SQL, uma vez
que exclui completamente tabelas ou banco de dados inteiros.
O bom projeto de banco
de dados também é uma questão de segurança. Empregando medidas
profiláticas razoáveis, um banco de dados SQL pode aprimorar a
segurança de seu site.
Arquivos remotos
Nas funções que
trabalham com arquivos, é possível utilizar URLs para acessar
arquivos em outros servidores na Web ou no próprio servidor.
As funções aqui
utilizadas serão detalhadas mais à frente no capítulo “Biblioteca
de Funções”.
Exemplo:
Lendo
$f
= fopen(“http://www.php.net”,”r”);
if (!$f){
echo “Erro ao abrir
a URL.<br>”;
exit;
}
while (!feof($f)){
$s = fgets($f,256);
echo
$s;
}
fclose($f);
Escrevendo
$f
= fopen(“ftp://user:senha@site”,”w”);
if (!$f){
echo “Erro ao abrir
a URL.<br>”;
exit;
}
else{
fputs($f,”texto
a ser escrito”);
fputs($f,”mais
texto a ser escrito”);
fputs($f,”mais
texto a ser escrito”);
fputs($f,”mais
texto a ser escrito”);
fputs($f,”mais
texto a ser escrito”);
fclose;
}
Formulario avancado
O PHP também entende
as matrizes em forma de variáveis vindas de um formulário.
Exemplo:
<form
action=”matrizes.php” method=“POST”>
Nome :
<input type=”text” name=dados[nome]><br>
Email :
<input type=”text” name=dados[email]><br>
Esportes
de preferência: <br>
<select multiple
name=”esportes[]”>
<option
value=”futebol”>Futebol</option>
<option
value=”vôlei”>Vôlei</option>
</select><br>
<input
type=”submit” value=”enviar”>
</form>
Depois de enviado, os
campos se tornarão variáveis e campos como este “dados[nome]”
se transformarão em arrays que não deixam de ser variáveis.
include
A função Include é
semelhante à função require, com a diferença que o código
do arquivo incluído é processado em tempo de execução, permitindo
que sejam usados “includes” dentro de estruturas de controle como
for e while.
$arqs =
array(‘a1.inc’,’a2.inc’,’a3.inc’) ;
for
($i=0;$i<count($arqs); $i++){
include($arqs[$i]);
}
if ($x == $y){
include($arquivo1);
}
else{
include($arquivo2);
}
/*
Note
que quando se utiliza a função include
Dentro
de estruturas é necessário a utilização das chaves
*/
require
A função require
põe o conteúdo de um outro arquivo no arquivo php atual, antes
de ser executado. Quando o interpretador do PHP ler este arquivo, ele
encontrará todo o conteúdo dos “require´s” adicionado no
arquivo corrente.
Require(“nomedoarquivo”);
Criando o hábito de
usar essa função, o programador pode vir a encontrar um erro de
arquivo já declarado. Para evitar isso é recomendável que sempre
que a função require for utilizada ela seja substituída
pela função require_once.
Require_once(“nome_do_arquivo“);
Sessões
Sessões
são mecanismos muito parecidos com os tradicionais cookies. Suas
diferenças são que sessões são armazenadas no próprio servidor e
não expiram a menos que o programador queira apagar a sessão.
Existem
algumas funções que controlam sessões e estão detalhadas no
capítulo “12.Bibliotecas de funções”.
Aqui
estão as funções de sessão mais usadas.
Nome da função
|
Argumentos
|
Session_start()
|
Nã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
|
O session_destroy()
só deve ser usado quando for da vontade do programador acabar com
todos as sessões daquele visitante, portanto muito cuidado com essa
função.
cookie
Cookies são mecanismos
para armazenar e consultar informações nos browsers dos visitantes
da página. O PHP atribui cookies utilizando a função setcookie,
que deve ser utilizada antes da tag <html> numa página.
O uso de cookies não
é recomendado quando se trata de informações sigilosas. Os dados
dos cookies são armazenados no diretório de arquivos temporários
do visitante, sendo facilmente visualizado por pessoas mal
intencionadas.
Além da opção
“aceitar cookies” que pode ser desativada a qualquer momento pelo
visitante.
Para uma transmissão
de dados segura é recomendável o uso de sessões(ver adiante).
Setcookie(“nome_do_cookie”,”seu_valor”,”tempo_de_vida”,”path”,”domínio”,”conexão_segura”)
Nome_do_cookie = É o
nome que, posteriormente, se tornará a variável e o que o servirá
de referência para indicar o cookie.
Seu_valor = É o valor
que a variável possuirá. Esse valor pode ser de todos os tipos.
Tempo_de_vida = É o
tempo, em segundos, que o cookie existirá no computador do
visitante. Uma vez excedido esse prazo o cookie se apaga de modo
irrecuperável. Se esse argumento ficar vazio, o cookie se apagará
quando o visitante fechar o browser.
Path = endereço da
página que gerou o cookie – automático
Domínio = domínio ao
qual pertence o cookie – automático
Conexão_segura =
Indica se o cookie deverá ser transmitido somente em uma conexão
segura HTTPS.
formularios
Ao clicar num botão “Submit” em um formulário HTML
as informações dos campos serão enviadas ao servidor especificado
para que possa ser produzida uma resposta. O PHP trata esses valores
como variáveis, cujo nome é o nome do campo definido no formulário.
O exemplo a seguir mostra isso, e mostra também como o código PHP
pode ser inserido em qualquer parte do código HTML:
<html>
<head><title>Aprendendo
PHP</title></head>
<body>
<?php
if
($texto != "")
echo
"Você digitou \"$texto\"<br><br>";
?>
<form
method=post action="<? echo $PATH_INFO;
?>">
<input
type="text" name="texto"
value="" size=10>
<br>
<input
type="submit" name="sub"
value="Enviar!">
</form>
</body>
</html>
Ao salvar o arquivo acima e carregá-lo no browser, o usuário verá
apenas um formulário que contém um espaço para digitar o texto. Ao
digitar um texto qualquer e submeter o formulário, a resposta, que é
o mesmo arquivo PHP (indicado pela constante $PATH_INFO, que retorna
o nome do arquivo) exibirá a mensagem "Você digitou
<<mensagem>>".
Isso ocorre porque o código PHP testa o conteúdo da
variável $texto. Inicialmente ele é uma string vazia, e por isso
nada é impresso na primeira parte. Quando algum texto é digitado no
formulário e submetido, o PHP passa a tratá-lo como uma variável.
Como no formulário o campo possui o nome “texto”, a variável
com seu conteúdo será $texto. Assim, no próximo teste o valor da
variável será diferente de uma string vazia, e o PHP imprime um
texto antes do formulário.
sexta-feira, 8 de março de 2013
PHP avançado- Interagindo com o browser
PHP também permite interagir com informações do
browser automaticamente. Por exemplo, o script a seguir mostra
informações sobre o browser do usuário.
<html>
<head><title>Aprendendo
PHP</title></head>
<body>
<?
echo $HTTP_USER_AGENT; ?>
</body>
</html>
<html>
<head><title>Aprendendo
PHP</title></head>
<body>
<?
if
(strpos($HTTP_USER_AGENT,"MSIE”) != 0) {
echo
"Você usa Internet Explorer";
}
else {
echo
"Você não usa Internet Explorer";
}
?>
</body>
</html>
Neste exemplo, será apenas exibido um texto informando
se está sendo utilizado o Microsoft Internet Explorer ou não, mas
para outras funções poderia ser utilizado algo semelhante.
É bom notar o surgimento de mais uma função no código
anterior: strpos(string1,string2).
Essa função retorna a posição da primeira aparição de string2
em string1, contando a partir de zero, e não retorna valor algum se
não ocorrer. Assim, para testar se a string $HTTP_USER_AGENT
contém a string “MSIE”,
basta testar se strpos
devolve algum valor.
Construtores
Um construtor é uma função definida na classe que é
automaticamente chamada no momento em que a classe é instanciada
(através do operador new).
O construtor deve ter o mesmo nome que a classe a que pertence. Veja
o exemplo:
class
conta {
var
$saldo;
function
conta () {
$this.saldo
= 0;
}
function
saldo() {
return
$this->saldo;
}
function
credito($valor) {
$this->saldo
+= $valor;
}
}
Podemos perceber que a classe conta agora possui um
construtor, que inicializa a variável $saldo
com o valor 0.
Um construtor pode conter argumentos, que são
opcionais, o que torna esta ferramenta mais poderosa. No exemplo
acima, o construtor da classe conta pode receber como argumento um
valor, que seria o valor inicial da conta.
Vale observar que para classes derivadas, o construtor
da classe pai não é automaticamente herdado quando o construtor da
classe derivada é chamado.
subclasse
Uma classe pode ser uma extensão de outra. Isso
significa que ela herdará todas as variáveis e funções da outra
classe, e ainda terá as que forem adicionadas pelo programador. Em
PHP não é permitido utilizar herança múltipla, ou seja, uma
classe pode ser extensão de apenas uma outra.Para criar uma classe
extendida, ou derivada de outra, deve ser utilizada a palavra
reservada extends,
como pode ser visto no exemplo seguinte:
class
novaconta extends conta {
var
$numero;
function
numero() {
return
$this->numero;
}
}
A classe acima é derivada da classe conta, tendo as
mesmas funções e variáveis, com a adição da variável $numero
e a função numero().
Variavel This
Na definição de uma classe, pode-se utilizar a
variável $this,
que é o próprio objeto. Assim, quando uma classe é instanciada em
um objeto, e uma função desse objeto na definição da classe
utiliza a variável $this,
essa variável significa o objeto que estamos utilizando.
Como exemplo da utilização de classes e objetos,
podemos utilizar a classe conta, que define uma conta bancária
bastante simples, com funções para ver saldo e fazer um crédito.
class
conta {
var
$saldo;
function
saldo() {
return
$this->saldo;
}
function
credito($valor) {
$this->saldo
+= $valor;
}
}
$minhaconta
= new conta;
$minhaconta->saldo(); //
a variável interna não foi
//
inicializada, e não contém
//
valor algum
$minhaconta->credito(50);
$minhaconta->saldo();
// retorna 50
QUESTAO DE CONCURSO- AJUDA
PESSOAL VOCES PODEM ME AJUDAR?
ESTA É UMA QUESTÃO DE CONCURSO, poderiam dizer-me se está correto ou falso dizer:
"O Linux é um sistema operacional de código aberto que pertence à classificação de software livre e permite a verificação de seu mecanismo de funcionamento e até mesmo a correção de eventuais falhas ou problemas."
e
"A maioria dos programas GNU/Linux é acompanhada por um manual do sistema operacional, o qual traz uma descrição básica de comandos e programas e detalhes acerca do funcionamento de opções desse sistema."
ESTA É UMA QUESTÃO DE CONCURSO, poderiam dizer-me se está correto ou falso dizer:
"O Linux é um sistema operacional de código aberto que pertence à classificação de software livre e permite a verificação de seu mecanismo de funcionamento e até mesmo a correção de eventuais falhas ou problemas."
e
"A maioria dos programas GNU/Linux é acompanhada por um manual do sistema operacional, o qual traz uma descrição básica de comandos e programas e detalhes acerca do funcionamento de opções desse sistema."
Objeto
Como foi dito anteriormente, classes são tipos, e não
podem ser atribuídas a variáveis. Variáveis do tipo de uma classe
são chamadas de objetos, e devem ser criadas utilizando o operador
new,
seguindo o exemplo abaixo:
$variável
= new $nome_da_classe;
Para utilizar as funções definidas na classe, deve
ser utilizado o operador “->”,
como no exemplo:
$variável->funcao1();
Classe
Uma classe é um conjunto de variáveis e funções
relacionadas a essas variáveis. Uma vantagem da utilização é
poder usufruir o recurso de encapsulamento de informação. Com o
encapsulamento o usuário de uma classe não precisa saber como ela é
implementada, bastando para a utilização conhecer a interface, ou
seja, as funções disponíveis. Uma classe é um tipo e, portanto
não pode ser atribuída a uma variável. Para definir uma classe,
deve-se utilizar a seguinte sintaxe:
class
Nome_da_classe {
var
$variavel1;
var
$variavel2;
function
funcao1 ($parâmetro) {
/*
=== corpo da função === */
}
}
Arrays Multidimensionais
Arrays
multidimensionais são arrays simples com um dos (ou todos) seus
elementos sendo outro array e assim consecutivamente.
Exemplo:
$Campeao[5] = 123456789
;
$Tricampeao[“casa”]
= $Campeao;
$Tricampeao[“predio”]
= 19191919;
$Brasil[1] =
$Tricampeao;
$Brasil[2] =
“Bicampeao”;
$Brasil[“copa”] =
$Tricampeao;
$Brasil[4] =
“Tetracampeao”;
$Brasil[“mundo”] =
“Pentacampeao”;
echo $Campeao[5];
|
// resultará 123456789
|
Array simples
|
echo $Brasil[1][“casa”][5] ;
|
// resultará 19191919
|
Array tridimensional
|
echo $Tricampeao[“casa”][5];
|
// resultará 123456789
|
Array bidimensional
|
echo $Brasil[“copa”][“predio”];
|
// resultará 19191919
|
Array bidimensional
|
Verificando o tipo de uma variável
Por causa da tipagem dinâmica utilizada pelo PHP, nem
sempre é possível saber qual o tipo de uma variável em determinado
instantes não contar com a ajuda de algumas funções que ajudam a
verificar isso. A verificação pode ser feita de duas maneiras:
Função que retorna o tipo da variável
Esta função é a gettype.
Sua assinatura é a seguinte:
string
gettype(mixed var);
A palavra “mixed” indica que a variável var pode
ser de diversos tipos.
A função gettype
pode retornar as seguintes strings: “integer”,
“double”, “string”, “array”, “object” e “unknown
type”.
Funções que testam o tipo da variável
São as funções is_int,
is_integer, is_real, is_long, is_float, is_string, is_array e
is_object. Todas
têm o mesmo formato, seguindo modelo da assinatura a seguir:
int
is_integer(mixed var);
Todas essas funções retornam true
se a variável for daquele tipo, e false
em caso contrário.
Destruindo uma variável
É possível desalocar uma variável se ela não for
usada posteriormente através da função unset,
que tem a seguinte assinatura:
int
unset(mixed var);
A função destrói a variável, ou seja, libera a
memória ocupada por ela, fazendo com que ela deixe de existir. Se
mais na frente for feita uma chamada á variável, será criada uma
nova variável de mesmo nome e de conteúdo vazio, a não ser que a
chamada seja pela função isset.
Se a operação for bem sucedida, retorna true.
Verificando se uma variável possui um valor
Existem 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 empty.
A função isset
Possui o seguinte protótipo:
int
isset(mixed var);
E retorna true
se a variável estiver setada (ainda que com uma string vazia ou o
valor zero), e false
em caso contrário.
A função empty
Possui a seguinte assinatura:
int
empty(mixed var);
E retorna true
se a variável não contiver um valor (não estiver setada) ou
possuir valor 0 (zero) ou uma string vazia. Caso contrário, retorna
false.
Variáveis de ambiente
O PHP possui diversas variáveis de ambiente, como a
$PHP_SELF,
por exemplo, que contém o nome e o path do próprio arquivo. Algumas
outras contém informações sobre o navegador do usuário, o
servidor http, 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 conteúdos, deve-se utilizar a função phpinfo().
URLencode
O formato urlencode
é obtido substituindo os espaços pelo caracter “+” e todos os
outros caracteres não alfa-numéricos (com exceção de “_”)
pelo caracter “%” seguido do código ASCII em hexadecimal.
Por exemplo: o texto “Testando 1 2 3 !!” em
urlencode fica “Testando+1+2+3+%21%21”
O PHP possui duas funções para tratar com texto em
urlencode. Seguem suas sintaxes:
string
urlencode(string texto);
string
urldecode(string texto);
Essas funções servem respectivamente para codificar ou decodificar
um texto passado como argumento. Para entender melhor o que é um
argumento e como funciona uma função, leia o tópico “funções”.
Continuando variaveis
O PHP tem um recurso conhecido como variáveis
variáveis, que consiste em variáveis cujos nomes também são
variáveis. Sua utilização é feita através do duplo cifrão ($$).
$a
= “teste”;
$$a
= “Mauricio Vivas”;
O
exemplo acima e equivalente ao seguinte:
$a
= “teste”;
$teste
= “Mauricio Vivas”;
Variáveis enviadas pelo navegador
Para interagir com a navegação feita pelo usuário, é
necessário que o PHP possa enviar e receber informações para o
software de navegação. A maneira de enviar informações, como já
foi visto anteriormente, geralmente é através de um comando de
impressão, como o echo.
Para receber informações vindas do navegador através de um link
ou um formulário html o PHP utiliza as informações enviadas
através da URL. Por exemplo: se seu script php está localizado em
“http://localhost/teste.php3”
e você o chama com a url “http://localhost/teste.php3?php=teste”,
automaticamente o PHP criará uma variável com o nome $php contendo
a string “teste”. Note que o conteúdo da variável está no
formato urlencode.
Os formulários html já enviam informações automaticamente nesse
formato, e o PHP decodifica sem necessitar de tratamento pelo
programador.
Variáveis
O modificador static
Uma variável estática é visível num escopo local,
mas ela é inicializada apenas uma vez e seu valor não é perdido
quando a execução do script deixa esse escopo. Veja o seguinte
exemplo:
function
Teste() {
$a
= 0;
echo
$a;
$a++;
}
O último comando da função é inútil, pois assim que
for encerrada a execução da função a variável $a perde seu
valor. Já no exemplo seguinte, a cada chamada da função a variável
$a terá seu valor impresso e será incrementada:
function
Teste() {
static
$a = 0;
echo
$a;
$a++;
}
O modificador static é muito utilizado em funções
recursivas, já que o valor de algumas variáveis precisa ser
mantido. Ele funciona da seguinte forma: O valor das variáveis
declaradas como estáticas é mantido ao terminar a execução da
função. Na próxima execução da função, ao encontrar novamente
a declaração com static, o valor da variável é recuperado.
Em outras palavras, uma variável declarada como static
tem o mesmo “tempo de vida” que uma
variável global, porém sua visibilidade é restrita ao escopo local
em que foi declarada e só é recuperada após a declaração.
Exemplo:
function
Teste() {
echo
"$a";
static
$a = 0;
$a++;
}
O exemplo acima não produzirá saída alguma. Na
primeira execução da função, a impressão ocorre antes da
atribuição de um valor à função e, portanto o conteúdo de $a é
nulo (string vazia). Nas execuções seguintes da função Teste() a
impressão ocorre antes da recuperação do valor de $a
e, portanto nesse momento seu valor ainda é nulo. Para que a função
retorne algum valor o modificador static
deve ser utilizado
Escopo
escopo de uma variável em PHP define a porção do
programa onde ela pode ser utilizada. Na maioria dos casos todas as
variáveis têm escopo global. Entretanto, em funções definidas
pelo usuário um escopo local é criado. Uma variável de escopo
global não pode ser utilizada no interior de uma função sem que
haja uma declaração.
Exemplo:
$php
= “Testando”;
function
Teste() {
echo
$php;
}
Teste();
O trecho acima não produzirá saída alguma, pois a
variável $php é de escopo global, e não pode ser referida num
escopo local, mesmo que não haja outra com nome igual que cubra a
sua visibilidade. Para que o script funcione da forma desejada, a
variável global a ser utilizada deve ser declarada.
Exemplo:
$php
= “Testando”;
function
Teste() {
global
$php;
echo
$php;
}
Teste();
Uma declaração “global” pode conter várias
variáveis, separadas por vírgulas. Uma outra maneira de acessar
variáveis de escopo global dentro de uma função é utilizando um
array pré-definido pelo PHP cujo nome é $GLOBALS. O índice para a
variável referida é o próprio nome da variável, sem o caracter $.
O exemplo acima e o abaixo produzem o mesmo resultado:
Exemplo:
$php
= "Testando";
function
Teste() {
echo
$GLOBALS["php"]; // imprime $php
echo
$php; // não imprime nada
}
Teste();
Assinar:
Postagens (Atom)