VARIÁVEIS VARIÁVEIS, CONSTANTES MÁGICAS E SINTAXE HERODOC EM STRINGS NO PHP
Independente do nome que encontrar por aí em livros ou mesmo pela
internet, é um recurso que nos permite a criação de uma variável através
do conteúdo de outra variável.
Para criar uma variável variável utiliza-se de uma variável para
servir de identificador para outra que é criada. Para isso utiliza-se
duas vezes o símbolo de $, ou seja, devemos utilizar $$. Veja no exemplo a seguir.
01
<?php
02
03
// Declarando o valor da variável $a
04
$a= 'nome';
05
06
/**
07
* Criamos $$a, que como possui dois $
08
* também pode ser chamada pelo valor da
09
* variável $a ou seja "nome"
10
*/
11
$$a= 'Mauro';
12
13
// Exibo $a e $nome que foi criada dinâmicamente
14
echo$a. ' : '. $nome;
15
16
?>
Como você pode ver no exemplo podemos criar a variável a partir do
valor de outra variável. O contrário também é válido ao invés de
criarmos a variável, em nosso caso, $nome dinamicamente
definimos seu valor normalmente no entanto quando formos exibir seu
resultado em tela podemos acessar seu valor através de $$a, lembrando que para que isto funcione $a deve possuir o mesmo valor da variável que será criada em nosso caso “nome”. Observe o exemplo:
01
<?php
02
03
// Declarando o valor da variável $a
04
$a= 'nome';
05
06
/**
07
* Criamos $nome, que é
08
* o mesmo valor de $a em
09
* sua declaração
10
*/
11
$nome= 'Mauro';
12
13
/**
14
* Exibo $a e $$a que foi criada
15
* dinâmicamente e é o equivalente a acessar
16
* a variável $nome
17
*/
18
echo$a. ' : '. $$a;
19
20
?>
Constantes Mágicas no PHP
O PHP fornece um grande número de constantes predefinidas.
Entretanto a maioria dessas constantes são criadas por várias
extensões, e somente estarão presentes quando essas extensões estiverem
disponíveis. Aqui você pode ver as constantes predefinidas, lembrando que para visualizar seu conteúdo apenas seguindo a regra de que elas são dependentes de extensões.
As constantes mágicas não possuem dependências, no entanto seus
valores mudam dependendo de onde elas são executadas. Veja uma tabela
com as 7 constantes mágicas que o PHP possui:
Veja um exemplo do valor retornado pelas constantes mágicas:
Constante
Valor retornado
__LINE__
A linha atual do script.
__FILE__
O caminho completo e nome do arquivo.
__DIR__
O diretório do arquivo.
__FUNCTION__
O nome da função.
__CLASS__
O nome da classe.
__METHOD__
O nome do método de classe.
__NAMESPACE__
O nome do atual namespace.
01
<?php
02
03
echo__LINE__. '<br />'. PHP_EOL;
04
05
echo__FILE__. '<br />'. PHP_EOL;
06
07
echo__DIR__ . '<br />'. PHP_EOL;
08
09
echo__LINE__;
10
11
?>
Utilizamos apenas as constantes mágicas no escopo do nosso
aprendizado, ou seja, não executamos a constante mágica equivalente a
funções (__FUNCTION__) e nem as equivalentes a classes (__CLASS__, __METHOD__, __NAMESPACE__). Com o avançar de nossos estudos ao nos aprofundarmos em funções,
classes e objetos você será capaz de ver o resultado do uso destas
constantes mágicas.
Sintaxe Heredoc em strings no PHP
Agora que já esta familiarizado em como declarar strings, com aspas simples e aspas duplas, iremos aprender um novo modo de declarar strings, a sintaxe heredoc.
Para declararmos uma string com a sintaxe heredoc utiliza-se primeiro <<<
(três sinais de menor) e em seguida definimos o delimitador, aí
definimos o texto contido na string, em seguida finalizamos a string
com o delimitador. Veja um exemplo:
01
<?php
02
03
$texto= <<<EOT
04
05
Eu sou uma string declarada com a sintaxe heredoc.
06
07
EOT;
08
09
echo$texto;
10
11
?>
O delimitador, no nosso caso EOT, tem que ser iniciados apenas com uma letra ou _
(sublinhado) e podem ser seguido de letras ou algarismos, ou seja,
números podem aparecer em outras posições exceto na primeira
Assim como na declaração de variáveis nunca utilize caracteres
especiais em nome do delimitador como acentos (é í ó) cedilha (ç)
O delimitador final não deve ser acompanhado de nenhum outro caractere, exceto o ponto e vírgula
O delimitador final deve ser iniciado no inicio da linha sem tabulações ou espaço, por isso nunca o endente.
Resumindo o delimitador final não deve conter nada antes e nem
depois do delimitador final, exceto o ponto e vírgula após sua
declaração.
Veja um exemplo de como estaríamos declarando de forma errada uma string com a sintaxe heredoc.
1
<?php
2
3
$texto= <<<7ÉOT
4
5
Eu sou uma string declarada com a sintaxe heredoc.
6
7
7éOT; echo$texto;
8
9
?>
No exemplo temos todos os erros possíveis como:
iniciar a string com caractere não alfanumérico ou underline
utilizar caractere especial no nome do delimitador
edentar o delimitador final
definir o delimitador final, diferente do de abertura, no exemplo o caractere “é” maiúsculo e minúsculo.
Tentar escrever algo na mesma linha após o delimitador final.
As strings declaradas como heredoc se comportam como as aspas duplas,
exceto que você não precisa utilizar os caracteres de escape para
definir a aspas simples e as aspas duplas. E como as strings declaradas com aspas duplas elas interpretam as variáveis veja um exemplo:
01
<?php
02
03
$nome= 'Mauro George';
04
05
$texto= <<<PHP
06
07
Eu me chamo {$nome}, como esta string está declarada como Heredoc eu posso exibir " e ' também sem escapar.
08
09
PHP;
10
11
echo$texto;
12
13
?>
Observe que além de exibir as aspas simples e duplas sem necessitar escapar ainda pude exibir o valor de minha variável.
Utilize sempre colchetes envolvendo uma variável, como no exemplo
anterior, quando ela for interpretada dentro de outra variável, ou seja
na declaração de string como heredoc e na declaração de strings com aspas duplas.
Descompacte o conteúdo do arquivo zip em um
diretório de sua escolha, por exemplo C:\PHP\. A estrutura de
arquivos e diretórios extraídos serão conforme mostrado abaixo:
Exemplo #1 Estrutura do pacote PHP 5
c:\php
|
+--dev
| |
| |-php5ts.lib -- php5.lib em versão non thread safe
|
+--ext -- DLLS de extensões para o PHP
| |
| |-php_bz2.dll
| |
| |-php_cpdf.dll
| |
| |-...
|
+--extras -- vazio
|
+--pear -- cópia inicial do PEAR
|
|
|-go-pear.bat -- script de setup do PEAR
|
|-...
|
|-php-cgi.exe -- executável CGI
|
|-php-win.exe -- executa scripts sem um prompt de comando aberto
|
|-php.exe -- executável PHP de Linha de Comando (CLI)
|
|-...
|
|-php.ini-development -- configurações php.ini padrão
|
|-php.ini-production -- configurações php.ini recomendadas
|
|-php5apache2_2.dll -- não existe na versão non thread safe
|
|-php5apache2_2_filter.dll -- não existe na versão non thread safe
|
|-...
|
|-php5ts.dll -- principal DLL do PHP ( php5.dll em versão non thread safe)
|
|-...
Abaixo está a lista de módulos e executáveis
incluídos na distrubuição zip:
go-pear.bat - o script de setup
do PEAR. Veja a » Instalação
(PEAR) para mais detalhes.
php-cgi.exe - executável CGI que
pode ser usado quando rodar o PHP no IIS via CGI ou FastCGI.
php-win.exe - executável do PHP
para executar scripts PHP sem usar uma janela de linha de comando
(por exemplo aplicativos PHP que usam a interface (GUI) do
Windows).
php.exe - executável do PHP para
executar scripts PHP dentro de uma interface de linha de comando
(CLI).
php5apache2_2.dll - módulo para
o Apache 2.2.X.
php5apache2_2_filter.dll - filtro
para o Apache 2.2.X.
Alterando o arquivo php.ini
Depois que o conteúdo do pacote php foi extraído,
copie o php.ini-production para php.ini dentro
da mesma pasta. Se necessário, também é possível colocar o
php.ini em qualquer outra localização de sua escolha,
mas isso requer configurações adicionais conforme descrito em
Configuração
do PHP.
O arquivo php.ini diz para o PHP como
se configurar, e como trabalhar com o ambiente em que ele está
rodando. Aqui estão algumas configurações do arquivo php.inique ajudarão o PHP a funcionar melhor com o Windows. Algumas delas
são opcionais. Existem muitas outras diretivas que podem ser
relevantes para o seu ambiente.
Diretivas requeridas:
extension_dir = <caminho
para o diretório de extesões> - A extension_dir
precisa apontar para o diretório onde as extensões do PHP estão
guardadas. O caminho pode ser absoluto (ex: "C:\PHP\ext")
ou relativo (ex: ".\ext"). Extensões que estão listadas
mais abaixo no arquivo php.ini precisam estar localizadas
em extension_dir.
extension = xxxxx.dll -
Para cada extensão que você deseja ativar, você precisa de uma
diretiva "extension=" correspondente que diga o PHP que
extensão no extension_dir para carregar durante a
inicialização.
log_errors = On - O PHP
tem um dispositivo de log de erros que pode ser usado para enviar
erros para um arquivo, ou um serviço (ex: syslog) e funciona em
conjunto com a diretiva abaixo error_log. Quando rodando
sob o IIS, a log_errors pode ser ativada, com um
error_log válido.
error_log = <caminho para o
arquivo de log de erro> - A error_log deve especificar o
caminho absoluto, ou relativo para o arquivo onde os erros do PHP
devem ser logados. O servidor web precisa ter permissão de escrita
para esse arquivo. Os caminhos mais comuns para esse arquivo são em
diretórios TEMP, por exemplo "C:\inetpub\temp\php-errors.log".
cgi.force_redirect = 0 -
Essa diretiva é requerida para rodar sob o IIS. É uma diretiva de
segurança requerida por muitos outros servidores web. Entretanto,
ativá-la sob o IIS fará com que o motor do PHP falhe no Windows.
cgi.fix_pathinfo = 1 -
Isso permite que o PHP acesse a informação de caminho real dentro
das especificações CGI. A implementação de IIS e FastCGI precisa
que isso seja configurado.
fastcgi.impersonate = 1 -
O FastCGI sob IIS tem a habilidade de imitar tokens de segurança do
cliente que está chamando. Isso permite que o IIS defina o contexto
de segurança da chamada.
fastcgi.logging = 0 - O
log de FastCGI deve ser desativado no IIS. Se for deixado ativo,
qualquer mensagem de qualquer classe é tratada pelo FastCGI como
condições de erro que farão o IIS gerar uma excessão HTTP 500.
Diretivas opcionais
max_execution_time = ## -
Essa diretiva diz ao PHP qual o máximo de tempo que ele pode gastar
executando um determinado script. O padrão é 30 segundos. Aumente
o valor dessa diretiva se as aplicações demoram muito tempo para
executar.
memory_limit = ###M - A
quantidade de memória disponível para o processo do PHP, em
Megabytes. O padrão é 128, que é o suficiente para a maioria das
aplicações PHP. Algumas mais complexas podem precisar de mais.
display_errors = Off -
Essa diretiva diz ao PHP para incluir, ou não, qualquer mensagem de
erro na corrente que ele retorna ao servidor Web. Se isso for
configurado para "On", então o PHP irá enviar ao web
server qualquer classe de erro que você definir na diretiva
error_reporting como parte da corrente de erro. Por
razões de segurança é recomendado que seja configurada para "Off"
em servidores de produção, para não revelar qualquer informação
de segurança sensível que é geralmente incluída nas mensagens de
erro.
open_basedir = <caminhos
para diretórios, separados por ponto-e-vírgula>, ex:
openbasedir="C:\inetpub\wwwroot;C:\inetpub\temp". Essa
diretiva especifica os caminhos para os diretórios onde o PHP pode
executar operações de sistema de arquivos. Qualquer operação
fora desses caminhos especificados resultará em um erro. Essa
diretiva é especificamente útil para travar a instalação do PHP
dentro de ambientes de hospedagem compartilhados para previnir
scripts PHP de acessarem quaisquer arquivos fora do diretório raiz
do web site.
upload_max_filesize = ###M
e post_max_size = ###M - O tamanho máximo
permitido de um arquivo subido e dados de post, respectivamente. Os
valores dessas diretivas devem ser aumentados em aplicações PHP
que precisam fazer grandes uploads, como por exemplo arquivo de
fotos e vídeos.
O PHP agora está configurado no seu sistema. O
próximo passo é escolher um servidor web, e fazer com que ele rode
o PHP. Escolha um servidor na tabela de conteúdos.
Além de rodar o PHP em um servidor web, o PHP
pode rodar a partir da linha de comando assim como um script .BAT.
Nenhum comentário:
Postar um comentário