Introdução ao PHP
<p class=\"negrito\">11. Variáveis e Constantes</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Declaração de uma variável</p>
<p align=\"JUSTIFY\">Como a tipagem em PHP é dinâmica,
as variáveis não precisam ser declaradas. Uma variável
é inicializada no momento em que é feita a primeira
atribuição. O tipo da variável será
definido de acordo com o valor atribuído.</p>
<p align=\"JUSTIFY\">O modificador static</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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:</p>
<p align=\"JUSTIFY\"></p>
<span class=\"mysql\"><?php<br>
function Teste() {<br>
$a = 0;<br>
echo $a;<br>
$a++;<br>
}<br>
?> </span><font face=\"Courier New\" size=\"3\"><br>
</font>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
function Teste() {<br>
static $a = 0;<br>
echo $a;<br>
$a++;<br>
}<br>
?></span><font face=\"Courier New\" size=\"3\"> </font></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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.</p>
<p align=\"JUSTIFY\">Em outras palavras, uma variável declarada
como <span class=\"mysql\">static </span>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.</p>
<p align=\"JUSTIFY\">Exemplo: </p>
<p align=\"JUSTIFY\" class=\"mysql\"><?php<br>
function Teste() {<br>
echo \"$a\";<br>
static $a = 0;<br>
$a++;<br>
}<br>
?> </p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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 <font face=\"Courier New\" size=3>$a</font>,
e portanto nesse momento seu valor ainda é nulo. Para que
a função retorne algum valor o modificador <span class=\"mysql\">static
</span>deve ser utilizado.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Variáveis Variáveis</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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 ($$).</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$a = "teste";<br>
$$a = "Mauricio Vivas";</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">// O exemplo acima e equivalente
ao seguinte:</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$a = "teste";<br>
$teste = "Mauricio Vivas";<br>
?> </span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Variáveis enviadas pelo navegador</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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
<span class=\"mysql\">"http://localhost/teste.php3"</span>
e você o chama com a url <span class=\"mysql\">"http://localhost/teste.php3?vivas=teste"</span>,
automaticamente o PHP criará uma variável com o nome
$vivas contendo a string "teste". Note que o conteúdo
da variável está no formato <font face=\"Courier New\" size=3>urlencode</font>.
Os formulários html já enviam informações
automaticamente nesse formato, e o PHP decodifica sem necessitar
de tratamento pelo programador.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">URLencode</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">O formato <span class=\"mysql\">urlencode</span>
é 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.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Por exemplo: o texto "Testando 1 2 3 !!"
em urlencode fica "Testando+1+2+3+%21%21"</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">O PHP possui duas funções para tratar
com texto em urlencode. Seguem suas sintaxes:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">string urlencode(string
texto);</span></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">string urldecode(string
texto);</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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".</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Utilizando arrays</p>
<p align=\"JUSTIFY\">Cada elemento de um formulário HTML submetido
a um script PHP cria no ambiente do mesmo uma variável cujo
nome é o mesmo nome do elemento. Por exemplo: um campo definido
como:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\"><input type="text" name="endereco"></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">ao ser submetido a um script PHP fará com
que seja criada uma variável com o nome <span class=\"mysql\">$endereco</span>.
Isto acontece de forma semelhante para cookies, como veremos mais
adiante.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Uma boa técnica de programação
é utilizar a notação de arrays para nomes de
cookies ou itens de um formulário html. Para um conjunto
de checkboxes, por exemplo, podemos utilizar a seguinte notação:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><input type=\"checkbox\" name=\"teste[]\"
value=\"valor1\">opcao1<br>
</span><span class=\"mysql\"><input type=\"checkbox\" name=\"teste[]\"
value=\"valor2\">opcao2<br>
</span><span class=\"mysql\"><input type=\"checkbox\" name=\"teste[]\"
value=\"valor3\">opcao3<br>
</span><span class=\"mysql\"><input type=\"checkbox\" name=\"teste[]\"
value=\"valor4\">opcao4<br>
</span><span class=\"mysql\"><input type=\"checkbox\" name=\"teste[]\"
value=\"valor5\">opcao5</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Ao submeter o formulário, o script que recebe
os valores submetidos terá uma variável chamada <span class=\"mysql\">$teste</span>
contendo os valores marcados num array, com índices a partir
de zero. Assim, se forem marcadas as opçoes 2, 3 e 5, poderemos
fazer as seguintes afirmações:</p>
<p align=\"JUSTIFY\" class=\"mysql\"><?php<br>
$teste == array("valor2", "valor3", valor5");<br>
$teste[0] == "valor2;<br>
$teste[1] == "valor3;<br>
$teste[2] == "valor5;<br>
?> </p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">O mesmo artifício pode ser utilizado com
outros elementos de formulários e até com cookies.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Variáveis de ambiente</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">O PHP possui diversas variáveis de ambiente,
como a <span class=\"mysql\">$PHP_SELF</span>, 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 <span class=\"mysql\">phpinfo().</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Verificando o tipo de uma variável</p>
<p align=\"JUSTIFY\">Por causa da tipagem dinâmica utilizada pelo
PHP, nem sempre é possível saber qual o tipo de uma
variável em determinado instantese não contar com
a ajuda de algumas funções que ajudam a verificar
isso. A verificação pode ser feita de duas maneiras:</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Função que retorna o tipo da variável</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Esta função é a <span class=\"mysql\">gettype</span>.
Sua assinatura é a seguinte:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\">string gettype(mixed var);</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A palavra "mixed" indica que a variável
var pode ser de diversos tipos.</p>
<p align=\"JUSTIFY\">A função <span class=\"mysql\">gettype</span>
pode retornar as seguintes strings: <span class=\"mysql\">"integer",
"double", "string", "array", "object"
e "unknown type".</span> </p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Funções que testam o tipo da variável</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">São as funções <span class=\"mysql\">is_int,
is_integer, is_real, is_long, is_float, is_string, is_array e is_object</span>.
Todas têm o mesmo formato, seguindo modelo da assinatura a
seguir:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\">int is_integer(mixed var);</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Todas essas funções retornam <span class=\"mysql\">true</span>
se a variável for daquele tipo, e <span class=\"mysql\">false</span>
em caso contrário.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Destruindo uma variável</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">É possível desalocar uma variável
se ela não for usada posteriormente através da função
<span class=\"mysql\">unset</span>, que tem a seguinte assinatura:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\">int unset(mixed var);</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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 <span class=\"mysql\">isset</span>.
Se a operação for bem sucedida, retorna <span class=\"mysql\">true</span>.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Verificando se uma variável possui um
valor</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Existem dois tipos de teste que podem ser feitos
para verificar se uma variável está setada: com a
função <span class=\"mysql\">isset</span> e com
a função <span class=\"mysql\">empty</span>.</p>
<p align=\"JUSTIFY\">A função isset</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Possui o seguinte protótipo:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\">int isset(mixed var);</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">E retorna <span class=\"mysql\">true</span> se a
variável estiver setada (ainda que com uma string vazia ou
o valor zero), e <span class=\"mysql\">false</span> em caso contrário.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A função empty</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Possui a seguinte assinatura:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\">int empty(mixed var);</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">E retorna <span class=\"mysql\">true</span> 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 <span class=\"mysql\">false</span>.</p>
<p align=\"JUSTIFY\">Constantes pré-definidas</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">O PHP possui algumas constantes pré-definidas,
indicando a versão do PHP, o Sistema Operacional do servidor,
o arquivo em execução, e diversas outras informações.
Para ter acesso a todas as constantes pré-definidas, pode-se
utilizar a função <span class=\"mysql\">phpinfo()</span>,
que exibe uma tabela contendo todas as constantes pré-definidas,
assim como configurações da máquina, sistema
operacional, servidor http e versão do PHP instalada.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Definindo constantes</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Para definir constantes utiliza-se a função
<span class=\"mysql\">define</span>. Uma vez definido, o valor de
uma constante não poderá mais ser alterado. Uma constante
só pode conter valores escalares, ou seja, não pode
conter nem um array nem um objeto. A assinatura da função
<span class=\"mysql\">define</span> é a seguinte:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\">int define(string nome_da_constante,
mixed valor);</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A função retorna <font face=\"Courier New\" size=3>true</font>
se for bem-sucedida. Veja um exemplo de sua utilização
a seguir:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
define (\"pi\", 3.1415926536);</span></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$circunf = 2*pi*$raio;<br>
?></span></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Declaração de uma variável</p>
<p align=\"JUSTIFY\">Como a tipagem em PHP é dinâmica,
as variáveis não precisam ser declaradas. Uma variável
é inicializada no momento em que é feita a primeira
atribuição. O tipo da variável será
definido de acordo com o valor atribuído.</p>
<p align=\"JUSTIFY\">O modificador static</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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:</p>
<p align=\"JUSTIFY\"></p>
<span class=\"mysql\"><?php<br>
function Teste() {<br>
$a = 0;<br>
echo $a;<br>
$a++;<br>
}<br>
?> </span><font face=\"Courier New\" size=\"3\"><br>
</font>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
function Teste() {<br>
static $a = 0;<br>
echo $a;<br>
$a++;<br>
}<br>
?></span><font face=\"Courier New\" size=\"3\"> </font></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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.</p>
<p align=\"JUSTIFY\">Em outras palavras, uma variável declarada
como <span class=\"mysql\">static </span>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.</p>
<p align=\"JUSTIFY\">Exemplo: </p>
<p align=\"JUSTIFY\" class=\"mysql\"><?php<br>
function Teste() {<br>
echo \"$a\";<br>
static $a = 0;<br>
$a++;<br>
}<br>
?> </p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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 <font face=\"Courier New\" size=3>$a</font>,
e portanto nesse momento seu valor ainda é nulo. Para que
a função retorne algum valor o modificador <span class=\"mysql\">static
</span>deve ser utilizado.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Variáveis Variáveis</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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 ($$).</p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
$a = "teste";<br>
$$a = "Mauricio Vivas";</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">// O exemplo acima e equivalente
ao seguinte:</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$a = "teste";<br>
$teste = "Mauricio Vivas";<br>
?> </span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Variáveis enviadas pelo navegador</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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
<span class=\"mysql\">"http://localhost/teste.php3"</span>
e você o chama com a url <span class=\"mysql\">"http://localhost/teste.php3?vivas=teste"</span>,
automaticamente o PHP criará uma variável com o nome
$vivas contendo a string "teste". Note que o conteúdo
da variável está no formato <font face=\"Courier New\" size=3>urlencode</font>.
Os formulários html já enviam informações
automaticamente nesse formato, e o PHP decodifica sem necessitar
de tratamento pelo programador.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">URLencode</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">O formato <span class=\"mysql\">urlencode</span>
é 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.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Por exemplo: o texto "Testando 1 2 3 !!"
em urlencode fica "Testando+1+2+3+%21%21"</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">O PHP possui duas funções para tratar
com texto em urlencode. Seguem suas sintaxes:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">string urlencode(string
texto);</span></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">string urldecode(string
texto);</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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".</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Utilizando arrays</p>
<p align=\"JUSTIFY\">Cada elemento de um formulário HTML submetido
a um script PHP cria no ambiente do mesmo uma variável cujo
nome é o mesmo nome do elemento. Por exemplo: um campo definido
como:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\"><input type="text" name="endereco"></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">ao ser submetido a um script PHP fará com
que seja criada uma variável com o nome <span class=\"mysql\">$endereco</span>.
Isto acontece de forma semelhante para cookies, como veremos mais
adiante.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Uma boa técnica de programação
é utilizar a notação de arrays para nomes de
cookies ou itens de um formulário html. Para um conjunto
de checkboxes, por exemplo, podemos utilizar a seguinte notação:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><input type=\"checkbox\" name=\"teste[]\"
value=\"valor1\">opcao1<br>
</span><span class=\"mysql\"><input type=\"checkbox\" name=\"teste[]\"
value=\"valor2\">opcao2<br>
</span><span class=\"mysql\"><input type=\"checkbox\" name=\"teste[]\"
value=\"valor3\">opcao3<br>
</span><span class=\"mysql\"><input type=\"checkbox\" name=\"teste[]\"
value=\"valor4\">opcao4<br>
</span><span class=\"mysql\"><input type=\"checkbox\" name=\"teste[]\"
value=\"valor5\">opcao5</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Ao submeter o formulário, o script que recebe
os valores submetidos terá uma variável chamada <span class=\"mysql\">$teste</span>
contendo os valores marcados num array, com índices a partir
de zero. Assim, se forem marcadas as opçoes 2, 3 e 5, poderemos
fazer as seguintes afirmações:</p>
<p align=\"JUSTIFY\" class=\"mysql\"><?php<br>
$teste == array("valor2", "valor3", valor5");<br>
$teste[0] == "valor2;<br>
$teste[1] == "valor3;<br>
$teste[2] == "valor5;<br>
?> </p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">O mesmo artifício pode ser utilizado com
outros elementos de formulários e até com cookies.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Variáveis de ambiente</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">O PHP possui diversas variáveis de ambiente,
como a <span class=\"mysql\">$PHP_SELF</span>, 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 <span class=\"mysql\">phpinfo().</span></p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Verificando o tipo de uma variável</p>
<p align=\"JUSTIFY\">Por causa da tipagem dinâmica utilizada pelo
PHP, nem sempre é possível saber qual o tipo de uma
variável em determinado instantese não contar com
a ajuda de algumas funções que ajudam a verificar
isso. A verificação pode ser feita de duas maneiras:</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Função que retorna o tipo da variável</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Esta função é a <span class=\"mysql\">gettype</span>.
Sua assinatura é a seguinte:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\">string gettype(mixed var);</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A palavra "mixed" indica que a variável
var pode ser de diversos tipos.</p>
<p align=\"JUSTIFY\">A função <span class=\"mysql\">gettype</span>
pode retornar as seguintes strings: <span class=\"mysql\">"integer",
"double", "string", "array", "object"
e "unknown type".</span> </p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Funções que testam o tipo da variável</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">São as funções <span class=\"mysql\">is_int,
is_integer, is_real, is_long, is_float, is_string, is_array e is_object</span>.
Todas têm o mesmo formato, seguindo modelo da assinatura a
seguir:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\">int is_integer(mixed var);</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Todas essas funções retornam <span class=\"mysql\">true</span>
se a variável for daquele tipo, e <span class=\"mysql\">false</span>
em caso contrário.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Destruindo uma variável</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">É possível desalocar uma variável
se ela não for usada posteriormente através da função
<span class=\"mysql\">unset</span>, que tem a seguinte assinatura:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\">int unset(mixed var);</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">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 <span class=\"mysql\">isset</span>.
Se a operação for bem sucedida, retorna <span class=\"mysql\">true</span>.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Verificando se uma variável possui um
valor</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Existem dois tipos de teste que podem ser feitos
para verificar se uma variável está setada: com a
função <span class=\"mysql\">isset</span> e com
a função <span class=\"mysql\">empty</span>.</p>
<p align=\"JUSTIFY\">A função isset</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Possui o seguinte protótipo:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\">int isset(mixed var);</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">E retorna <span class=\"mysql\">true</span> se a
variável estiver setada (ainda que com uma string vazia ou
o valor zero), e <span class=\"mysql\">false</span> em caso contrário.</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A função empty</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Possui a seguinte assinatura:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\">int empty(mixed var);</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">E retorna <span class=\"mysql\">true</span> 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 <span class=\"mysql\">false</span>.</p>
<p align=\"JUSTIFY\">Constantes pré-definidas</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">O PHP possui algumas constantes pré-definidas,
indicando a versão do PHP, o Sistema Operacional do servidor,
o arquivo em execução, e diversas outras informações.
Para ter acesso a todas as constantes pré-definidas, pode-se
utilizar a função <span class=\"mysql\">phpinfo()</span>,
que exibe uma tabela contendo todas as constantes pré-definidas,
assim como configurações da máquina, sistema
operacional, servidor http e versão do PHP instalada.</p>
<p align=\"JUSTIFY\"> </p>
<p align=\"JUSTIFY\">Definindo constantes</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">Para definir constantes utiliza-se a função
<span class=\"mysql\">define</span>. Uma vez definido, o valor de
uma constante não poderá mais ser alterado. Uma constante
só pode conter valores escalares, ou seja, não pode
conter nem um array nem um objeto. A assinatura da função
<span class=\"mysql\">define</span> é a seguinte:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\" class=\"mysql\">int define(string nome_da_constante,
mixed valor);</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\">A função retorna <font face=\"Courier New\" size=3>true</font>
se for bem-sucedida. Veja um exemplo de sua utilização
a seguir:</p>
<p align=\"JUSTIFY\"></p>
<p align=\"JUSTIFY\"><span class=\"mysql\"><?php<br>
define (\"pi\", 3.1415926536);</span></p>
<p align=\"JUSTIFY\"><span class=\"mysql\">$circunf = 2*pi*$raio;<br>
?></span></p>
Alguem descobriu onde baixar esse tutorial???
02/09/2008 8:57am
(~16 anos atrás)
Estou procurando a dias esse arquivos PDF com as imagens, pois não estou encontrando o arquivo completo, quero imprimir isso.
Obriado.
Obriado.
28/06/2007 5:30am
(~17 anos atrás)
Não consigo fazer o download através do link (http://phpbrasil.com/click.php?send=http://www.helo.tato.nom.br/arquivos/apostilaphp_mv.pdf).
01/06/2006 5:22am
(~18 anos atrás)
tentei no passado aprender por apostila,
mais livros ajudar muito ,em especial aquele que envolver o leitor num projeto.
esse tipo de trabalho ou livro são excelente ajuda : mais legal pela iniciativa
25/11/2005 10:32am
(~19 anos atrás)
As imagens não estão aparecendo e tentei acessar o site do autor, mas também não funciona.
Alguém tem disponível para download?
Alguém tem disponível para download?
24/06/2005 7:06pm
(~19 anos atrás)
dizem q a primeira impreção é a q fica,
axei bastante intuitivo.
:)
axei bastante intuitivo.
:)
24/04/2005 11:56pm
(~19 anos atrás)
Galera, quem estiver afim de baixar o tutorial é só acessar o seguinte link
http://www.helo.tato.nom.br/arquivos/apostilaphp_mv.pdf
Té +
http://www.helo.tato.nom.br/arquivos/apostilaphp_mv.pdf
Té +
11/03/2005 7:31pm
(~19 anos atrás)