(PHP 4, PHP 5)
assert — Belirtilen savı sınar
assert() işlevi belirtilen
sav
'ı sınar ve sonuç FALSE
ise uygun eylemi
gerçekleştirir.
sav
bir dizge olarak verilmişse işlev tarafından PHP
kodu olarak değerlendirilir. Savın bir dizge olarak belirtilmesinin
getirisi, sav sınama kapalı olduğu zaman daha az yük oluşması ve sav
başarısız olduğunda iletilerin sav
ifadesini
içerebilmeleridir. Yani, sav olarak bir mantıksal ifade aktardığınız
takdirde, bu koşul ifadesi assert_options() işlevi ile
tanımladığınız eylemci işleve bir değiştirge olarak gösterilmez, eylemci
işlev çağrılmadan önce koşul ifadesi bir dizgeye, mantıksal FALSE
değeri
ise boş bir dizgeye dönüştürülür.
Savlar sadece bir hata ayıklama aracı olarak kullanılmalıdır. Bazı
programlama hatalarının olmadığını belirten veya bir eklenti işlevi gibi
belli özelliklerin veya belli sistem sınırlamalarının ve özelliklerinin
varlığını sınayan koşul ifadelerinin her zaman TRUE
dönmesini gerektiren
kararlılık denetimleri için de kullanabilirsiniz.
Savlar, girdi değiştirgelerinin sınanması gibi normal çalışma anı işlemleri için kullanılmamalıdır. Ana kural olarak, bir kararlılık denetimini etkin kılmaksızın kodunuz düzgün olarak çalışabilmelidir.
assert() işlevinin davranışı assert_options() işlevi ile veya bu işlevin kılavuz sayfasında açıklanan INI ayarları ile yapılandırılabilir.
assert_options() işlevi ve/veya ASSERT_CALLBACK yapılandırma yönergesi ile bir savın başarısızlığı halinde çalışacak bir geriçağırım işlevi belirtilebilir.
assert() geriçağırım işlevleri, özellikle özdevinimli deneme ortamları oluşturulurken yararlı olur. Çünkü bunlar, savın oluştuğu yer bilgisi yanında sava aktarılan kodun da yakalanmasını kolaylaştırırlar. Bu bilgi başka yöntemlerle yakalanabilirse de savların kullanımı bu işlemin daha kolay ve çabuk olmasını sağlar.
Geriçağırım işlevinin üç değiştirge kabul etmesi gerekir. İlk değiştirge savın başarısız olduğu dosyayı, ikinci değiştirge savın başarısız olduğu satırı, üçüncü değiştirge ise başarısız olan ifadeyi (1, "iki" gibi herhangi bir değer belirtilebilir) içerir.
sav
İddia.
Sav yanlışsa FALSE
değilse TRUE
.
Örnek 1 - Başarısız bir savın özel bir işlevle ele alınması
<?php
// Savı etkin ve sessiz kılalım
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);
// Savın başarısızlığı halinde çalışacak işlevimiz
function savcı($dosya, $satır, $ifade)
{
echo "<hr>Sav geçersiz:
Dosya: '$dosya'<br />
Satır: '$satır'<br />
Kod: '$ifade'<br /><hr />";
}
// Geriçağırım işlevimizi belirtelim
assert_options(ASSERT_CALLBACK, 'savcı');
// Başarısız olmasını umarak bir sav ileri sürelim
assert('mysql_query("")');
?>