Sabitler, PHP dilinde değeri değişmeyen verileri temsil eden özel bir yapıdır. Bir kez tanımlandığında, sabitlerin değeri programın çalışma süresi boyunca değiştirilemez. Sabitler, özellikle programın farklı bölümlerinde aynı değere ihtiyaç duyulduğunda ve değişmesini istemediğiniz durumlarda kullanışlıdır.
PHP sabitleri, define()
fonksiyonu kullanılarak tanımlanır. Tanımlama yapıldığında, sabit adı ve değeri belirtilir. İşte bir sabitin nasıl tanımlandığına dair temel yapı:
define(name, value, case-insensitive)
Burada:
name
: Sabitin adını temsil eder ve büyük/küçük harf duyarlılığı olmayan bir dize (string) olarak belirtilir.value
: Sabitin değerini temsil eder ve tanımlandığı veri türüne göre değişebilir.case-insensitive
: Bu, isteğe bağlı bir parametredir ve varsayılan olarakfalse
dir.true
olarak ayarlanırsa, sabitin adının büyük/küçük harf duyarlılığı olmaz, yani adı farklı bir harf boyutunda tanımlasanız bile, aynı sabiti elde edersiniz.
Örnek olarak, bir uygulamada vergi oranını ve dil seçeneklerini sabit olarak tanımlayalım:
define("VERGI_ORANI", 0.18); define("LANG", ["tr", "en", "de", "fr"]); </pre> echo VERGI_ORANI; // ekrana bastırdık. echo '<hr>'; print_r(LANG); // print_r fonksiyonu Array' deki elemanları ekrana basar. echo '<hr>'; echo LANG[0]; // Array'ın 0 elemanını ekrana bastık.
Php Büyük Küçük Harfe Duyarlı / Duyarsız Sabit Örneği
define("color","Kırmzı",false); /* 3. parametreyi boş bırakmak ile false vermek aynı şeydir. Çünkü varsayılan değeri false dur.*/ echo color; // çıktı Kırmızı echo Color; // çıktı Color ve hata verir çünkü büyük küçük harfe duyarlıdır. echo '<hr>'; define("car","Mercedes",true); echo car; // çıktı Mercedes echo Car; // çıktı Mercedes - çalışır //Çünkü 3. parametreyi true verdiğimiz için büyük küçük harfe duyarsızdır.
Not : 3. parametreyi true yaptığınızda eğer ayarlarınız “warning” leri gösteriyor ise “Deprecated: define(): Declaration of case-insensitive constants is deprecated in” bu şekilde bir uyarı alırsınız.(Hatalar, uyarılar nasıl gösterilir nasıl kapatılır ileriki derslerde bakacağız.)
PHP 7.3 ile birlikte case-insensitive Deprecated edilmiştir. Yani artık kullanımı tavsiye edilmiyordur.