declare
(PHP 4, PHP 5, PHP 7, PHP 8)
declare
yapısı bir kod bloğunun çalıştırılması
esnasında uygulanacak yönergeleri belirlemek için kullanılır.
declare
yapısının sözdizimi diğer akış denetim
yapılarının söz dizimi ile benzerdir:
yönerge bölümü, declare
bloğunun davranışını belirlemek için kullanılır. Şimdilik yalnızca üç
yönerge kullanılabilmektedir:
Yönergeler dosya derlendikçe ele alındığından, sadece birebir değerler
yönergelere değer olarak verilebilir. Değişkenler ve sabitler kullanılamaz.
Örnek:
declare
bloğunun deyim
bölümünün nasıl çalıştırılacağı ve çalışma esnasındaki yan etkilerinin
ne olacağı yönerge bölümünde belirtilen
yönergeye bağlı olabilir.
declare
bloğu kendinden sonra gelen tüm kodu
etkilemesi için genel betik kapsamında da kullanılabilir. Bununla
birlikte, declare
bloğu dahil edilen bir dosyanın
içindeyse ebeveyn dosya bundan etkilenmez.
Tikler
Bir "tik", declare
bloğu içersinde çözümleyici
tarafından çalıştırılan her N tiklenebilir deyimde bir
ortaya çıkan bir olaydır. N değeri,
declare
bloğunun yönerge
bölümünde ticks=N
kullanılarak
belirtilir.
Her deyim tik sayımına dahil edilebilir değildir. Koşullu ifadeler ve
bağımsız değişken ifadeleri bu tür deyimlerdendir.
Her tik ile oluşturulacak eylem
register_tick_function() işlevi ile belirtilir. Daha
ayrıntılı bilgi için aşağıdaki örneğe bakınız. Her tik için birden fazla
olayın oluşabileceğini gözardı etmeyiniz.
Örnek 1 - Tik kullanım örneği
<?php
declare(ticks=1);
// Her tik deyimde bir çalıştırılacak işlev
function tik_eylemci()
{
echo "tik_eylemci() çağrıldı\n" ;
}
// Tik eylemcisini belirtelim
register_tick_function("tik_eylemci"); //tik olayına sebep olur
$a = 1; //tik olayına sebep olur
if ($a > 0) {
$a += 2; //tik olayına sebep olur
print $a; //tik olayına sebep olur
}
?>
Ayrıca, register_tick_function() ve
unregister_tick_function() işlevlerini de inceleyin.
encoding
Her betiğin karakter kodlaması betiğin başında
encoding
yönergesi ile belirtilebilir.
Örnek 2 - Betik için kodlama belirtmek
<?php
declare(encoding='ISO-8859-1');
// kodlar burada
?>
Dikkat
İsim alanları ile birlikte kullanıldığında, tek geçerli sözdizimi
declare(encoding='...');
olup, buradaki
...
kodlama değeridir.
declare(encoding='...') {}
sözdizimi isim alanları
ile birlikte kullanıldığında bir çözümleme hatası ile sonuçlanacaktır.
Ayrıca bak: zend.script_encoding.