Sabit, basit bir değerin adı olup PHP kodlarının çalışması esnasında değiştirilemez. Sabitlerde küçük ve büyük harfler farklı şekilde değerlendirilir. Sabit isimlerinin yazılmasında genellikle büyük harf kullanılır. Sabit adı bir harf veya alt çizgi karakteri ile başlamalı ve harf, rakam ve alt çizgi karakterlerinden oluşan ifadelerle devam etmelidir.
Bir sabit tanımlamak için define() fonksiyonunu veya const anahtar kelimesini kullanabilirsiniz. Bir sabiti tanımladıktan sonra değiştiremez veya tanımsız hale getiremezsiniz.
Sabitlerin değişkenlerden en büyük farkı; bir kez tanımlandıktan sonra değiştirilememeleri ve tüm PHP kodları içinde otomatik bir şekilde global olarak değerlendirilmelidir.
Sabitler içine sadece boolean, integer, float ve string değerler yerleştirebilirsiniz. Sabiti tanımladıktan sonra, sabitin ismini kullanarak sabit değerine erişebilirsiniz. Adını bildiğiniz bir sabitin değerini dinamik olarak almak için constant() fonksiyonunu ve tanımlanmış tüm sabitlerin bir listesini almak için ise get_defined_constants() fonksiyonunu kullanabilirsiniz.
const anahtar kelimesi ile sabit tanımlaması daima bir PHP dosyasının en başında yapılmalıdır. Başka bir ifade ile, fonksiyon, döngü ve if işlem satırlarında tanımlanamaz.
// define fonksiyonu ile yapılan sabit tanımlamaları
define ("CONBOOL01", TRUE);
define ("CONINT01", 121);
define ("CONFLOAT01", 75.23);
define ("CONSTR01", "String sabiti");
// const anahtar kelimesi ile yapılan sabit tanımlamaları
const CONBOOL02 = TRUE;
const CONINT02 = 121;
const CONFLOAT02 = 75.23;
const CONSTR02 = "String sabiti";
<html>
<body>
<?php
define ("CONBOOL01", TRUE);
define ("CONINT01", 121);
define ("CONFLOAT01", 75.23);
define ("CONSTR01", "Birinci String sabiti");
const CONBOOL02 = FALSE;
const CONINT02 = 247;
const CONFLOAT02 = 45.52;
const CONSTR02 = "İkinci String sabiti";
echo CONBOOL01 . ' ' . CONINT01 . ' ' . CONFLOAT01 . ' ' . CONSTR01 . '<br/>';
echo CONBOOL02 . ' ' . CONINT02 . ' ' . CONFLOAT02 . ' ' . CONSTR02 . '<br/>';
?>
</body>
</html>
Yukarıdaki dosyayı çalıştırdığımızda, web tarayıcımızda aşağıdaki ifadeler karşımıza çıkar:
1 121 75.23 Birinci String sabiti 247 45.52 İkinci String sabiti
PHP kodları ile çalışırken kullanabileceğiniz çok sayıda öntanımlı sabit vardır. Ancak, bu sabitlerin çoğu, dinamik olarak veya derlenerek kullanılabilen çeşitli eklentilerle oluşturularak kullanılabilmektedir.
Kullanıldıkları yere göre değerleri değişen yedi adet sihirli sabit vardır. Sihirli sabit isimlerindeki küçük ve büyük harfler benzer şekilde değerlendirilir.
__LINE__ : Bulunduğumuz dosyada bu sabitin bulunduğu satırın numarasını verir. __FILE__ : Bulunduğumuz dosyanın tam yol ve adını verir. __DIR__ : Dosyanın bulunduğu dizini verir. __FUNCTION__ : Fonksiyon adını verir. __CLASS__ : Sınıf adını verir. __METHOD__ : Sınıf içinde bulunan fonksiyon adını sınıf adı ile birlikte verir. __NAMESPACE__ : Geçerli isim alanının adını verir.
<html>
<body>
<?php
class ornek
{
function class_adi_goster()
{
echo __CLASS__ . "<br/>";
echo __FUNCTION__ . "<br/>";
echo __METHOD__ . "<br/>";
}
}
$obj = new ornek();
$obj->class_adi_goster();
echo __LINE__ . "<br/>";
echo __DIR__ . "<br/>";
echo __FILE__;
?>
</body>
</html>
Yukarıdaki dosyayı çalıştırdığımızda, web tarayıcımızda aşağıdaki ifadeler karşımıza çıkar:
ornek class_adi_goster ornek::class_adi_goster 19 C:\wamp\www\deneme C:\wamp\www\deneme\index.php