Sabitler
"External/ dizini tüm projeleriniz için ortak dosya kullanımı sunar."
Sabitler programlama dilinin çokca unsurlardan biridir. Sabitler define() fonkisyonu ile tanımlanırlar. Sabitler genellikle değişmesi güç değerleri saklayacak şekilde tasarlanırlar. Sabitler hesaplanabilir sayısal bir değer veya bir dizi saklayabilir. Ayrıca tanımlanan bir sabit'e tüm fonksiyon ve nesneler içerisinden erişilebilir. Yani küresel etki alanına sahiptir.
# Sabit Nasıl Tanımlanır?
PHP programlama dilinde sabitlerin söz dizimi aşağıdaki gibidir.
Kural: define('CONSTANT_NAME', 'CONSTANT_VALUE');
Programlama dillerinde sabitler standart olarak büyük harflerle yazılır ve birden fazla sözcüklerin ayrılması içinde alt tire (_) kullanılır.
# Sabit Tanımlama Kuralları
Her programlama dilinde olduğu gibi PHP'de de sabit tanımlamada uyulması gereken bazı kurallar vardır. Bunlar aşağıdaki gibidir.
● Sabitler isimleri alt tire(_) veya bir alfabetik karakterle başlamalıdır.
● Latin dillerindeki ğ, ü, ş gibi harflerde dahil özel hiç bir karakter içeremez.
● PHP dili tarafından rezervedilmiş sözcükleri sabit ismi olarak verilemez.
# Sabitlerin Alabileceği Değerler
Bir sabit hesaplanabilir ve dizi türündeki verileri saklayabilir.
Dizgeler daima tek veya çift tırnak ile ifade edilirler.
define('SITE_URL', 'https://znframework.com');
echo SITE_URL
Sabitlere sayısal değerler de aktarılabilir. Aritmetik için kullanılacak sayısal ifadelerin tırnaksız yazılması doğru bir kullanım olur. Diğer programlama dillerindeki gibi farklı sayı türleri için veri türü belirtilmesine gerek yoktur.
define('KDV', 18);
echo KDV;
18
Sabitlerde diziler de aktarılabilir.
define('CITIES', ['istanbul', 'izmir']);
echo CITIES[1];
# Tanımsız Sabit Hataları
Bir sabit tanımlanmadan kullanılırsa uyarı (Notice) türünden bir hata oluşur.
echo UNDEFINED_CONSTANTS;
UNDEFINED_CONSTANTS
Bir sabitin tanımlı olup olmadığından emin değilseniz ve uyarı türünden hata ile de karşılaşmak istemiyorsanız defined() fonksiyonunu kullanın.
if( defined('UNDEFINED_CONTANTS') )
{
echo UNDEFINED_CONTANTS;
}
else
{
echo 'Undefined: UNDEFINED_CONSTANTS';
}