(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:
declare (yönerge) deyim
yönerge bölümü, declare
bloğunun davranışını belirlemek için kullanılır. Şimdilik yalnızca üç yönerge kullanılabilmektedir: ticks
yönergesi (Daha fazla bilgi edinmek için aşağıya, ticks yönergesine bakınız.), encoding
yönergesi ve strict_types
yönergesi. Daha fazla bilgi için tür bildirimleri sayfasındaki strict bölümüne bakınız.
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:
<?php
// Bu geçerlidir:
declare(ticks=1);
// Bu geçersizdir:
const TICK_VALUE = 1;
declare(ticks=TICK_VALUE);
?>
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 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
?>
İ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.