declare
(PHP 4, PHP 5, PHP 7, PHP 8)
A instrução declare é usada
para definir diretivas de execução para um bloco de código.
A sintaxe do declare é similar à
sintaxe de outros construtos de controle de fluxo:
A seção directive permite que
o comportamento do bloco do declare seja
definido.
Atualmente somente três diretivas são reconhecidas:
As diretivas são manipuladas na compilação do arquivo, somente literais podem
ser usadas como valores da diretiva. Variáveis e constantes não podem ser usadas. Para
ilustrar:
A parte statement do bloco do
declare será executada - como
é executada e quais os efeitos colaterais que ocorrem durante
a execução depende da diretiva definida no bloco
directive.
O construtor do declare também pode ser usado
no escopo global, afetando todo o código que o segue (entretanto se o arquivo com o
declare for incluído, não afetará o
arquivo principal).
Tiques
Um tique é um evento que ocorre a cada
N declarações de baixo nível "ticáveis" executadas
pelo analisador dentro do bloco declare.
O valor de N é especificado
usando ticks=N
dentro do bloco declare da seção
directive.
Nem todas declarações são "ticáveis". Tipicamente, expressões de
condições e expressões de argumentos não são.
Os eventos que ocorrem em cada tique são especificados usando a função
register_tick_function(). Veja o exemplo
abaixo para mais detalhes. Note que mais de um evento pode ocorrer
para cada tique.
Exemplo #1 Exemplo de uso do tique
<?php
declare(ticks=1);
// A função a ser chamada em cada evento de tique
function gerenciador_de_tiques()
{
echo "função gerenciador_de_tiques() chamada\n";
}
register_tick_function('gerenciador_de_tiques'); // Causa um evento de tique
$a = 1; // Causa um evento de tique
if ($a > 0) {
$a += 2; // Causa um evento de tique
print $a . "\n"; // Causa um evento de tique
}
O exemplo acima produzirá:
função gerenciador_de_tiques() chamada
função gerenciador_de_tiques() chamada
função gerenciador_de_tiques() chamada
3
função gerenciador_de_tiques() chamada
Consulte também register_tick_function() e
unregister_tick_function().
Codificação
A codificação de um script pode ser especificada em cada arquivo com uma diretiva encoding.
Exemplo #2 Declarando a codificação do script
<?php
declare(encoding='ISO-8859-1');
// código aqui
Cuidado
Quando usada com namespaces, a única sintaxe válida para declarar
é declare(encoding='...'); onde ...
é o valor da codificação. declare(encoding='...') {}
irá resultar em um erro de sintaxe quando usada com namespaces.
Veja mais zend.script_encoding.