Sihirli Sabitler

PHP, çalışan her betiğe çok sayıda öntanımlı sabit sağlar. Öte yandan, bu sabitlerin çoğu, çeşitli eklentiler tarafından tanımlandığından, sadece eklenti bir modül olarak veya PHP içinde derlenmişse kullanılabilir.

Değerleri kullanıldıkları yere göre değişen dokuz sihirli sabit vardır. Örneğin, __LINE__ sabitinin değeri betiğin hangi satırında kullanıldığına bağlıdır. Çalışma zamanında çözümlenen sırada sabitlerin tersine "sihirli" sabitlerin tamamı derleme sırasında çözümlenir. Bu özel sabitler büyük-küçük harf farkına duyarsızdır ve aşağıda listelenmişlerdir:

Birkaç "sihirli" PHP sabiti
İsim Açıklama
__LINE__ Dosyada geçerli satırın numarası.
__FILE__ Dosyanın veya sembolik bağdan çözümlenen dosyanın tam dosya yolu ve dosya ismi. include işlevi ile betiğe eklenen bir dosyanın içinde kullanıldığında betiğin ismini değil, eklenen dosyanın ismini içerir.
__DIR__ Dosyanın bulurduğu dizin. Dahil edilen bir dosyanın içinde kullanıldığında dahil edilen dosyanın dizini döner. Bu dirname(__FILE__) işlevine eşdeğerder. Bu dizin isminin sonuna bir kök dizin olmadıkça bir bölü imi konmaz.
__FUNCTION__ İşlev ismi veya anonim işlevler için {closure}.
__CLASS__ Sınıf ismi. Bildirildiği isim alanını (Foo\Bar gibi) içerir. PHP 5.4 ve sonrasında __CLASS__ ayrıca kalıtsal özelliklerin içinde de çalışır. Böyle bir yöntemin içinde kullanıldığında __CLASS__, kalıtsal özelliğin içinde kullanıldığı sınıfın ismidir.
__TRAIT__ Kalıtsal özellik ismi. Bildirildiği isim alanını (Foo\Bar gibi) içerir.
__METHOD__ Yöntem ismi.
__NAMESPACE__ Geçerli isim alanının adı.
ClassName::class Tamamen nitelenmiş sınıf ismi. Ayrıca bkz, ::class.

Ayrıca bakınız: get_class(), get_object_vars(), file_exists() ve function_exists().

Sürüm Bilgisi

Sürüm: Açıklama
5.5.0 Sihirli sabit ::class eklendi.
5.4.0 __TRAIT__ sabiti eklendi
5.3.0 __DIR__ ve __NAMESPACE__ sabitleri eklendi
5.0.0 __METHOD__ sabiti eklendi
5.0.0 Bu sürümden önce bazı sihirli sabitlerin değerleri daima küçük harfliydi. Şimdi bunların hepsi harf büyüklüğüne duyarlıdır (isimler bildirildikleri gibi içerilir).
4.3.0 __FUNCTION__ ve __CLASS__ sabitleri eklendi
4.0.2 __FILE__ daima sembolik bağları çözümlenmiş mutlak bir yol içerir, halbuki eski sürümlerde bazı durumlarda göreli yollar da içerirdi.