array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'control-structures.declare.php', 1 => 'declare', ), 'up' => array ( 0 => 'language.control-structures.php', 1 => 'Denetim Yapıları', ), 'prev' => array ( 0 => 'control-structures.match.php', 1 => 'match', ), 'next' => array ( 0 => 'function.return.php', 1 => 'return', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'language/control-structures/declare.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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.