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:
declare (yönerge) deyim
yönerge bölümü, declare bloğunun davranışını belirlemek için kullanılır. Şimdilik yalnızca iki yönerge kullanılabilmektedir: ticks yönergesi (Daha fazla bilgi edinmek için aşağıya, ticks yönergesine bakınız.) ve encoding yönergesi.
Bilginize: encoding yönergesi PHP 5.3.0'da eklenmiştir.
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.
<?php
// aşağıdaki iki örnek aynıdır:
// bunu kullanabilirsiniz:
declare(ticks=1) {
// betiğin tamamı burada
}
// ya da bunu kullanabilirsiniz:
declare(ticks=1);
// betiğin tamamı burada
?>
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 değiştirge 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 1
<?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");
$a = 1;
if ($a > 0) {
$a += 2;
print($a);
}
?>
Örnek 2 - Tik kullanım örneği 2
<?php
function tik_eylemci()
{
echo "tik_eylemci() çağrıldı\n" ;
}
$a = 1;
tik_eylemci();
if ($a > 0) {
$a += 2;
tik_eylemci();
print($a);
tik_eylemci();
}
tik_eylemci();
?>
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 3 - Betik için kodlama belirtmek
<?php
declare(encoding='ISO-8859-1');
// kodlar burada
?>
İ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.
Karakter kodlaması bildirim değeri, PHP, --enable-zend-multibyte yapılandırma seçeneği ile derlenmediği takdirde PHP 5.3'te yoksayılır. PHP 6.0'da --enable-zend-multibyte etkindir.