Bu dersimizde PHP sabitler konusunu ele alacağız. PHP sabit nedir? PHP sabit nasıl oluşturulur? PHP sabitler ne işe yarar? PHP sabit oluşturma kuralları nelerdir? Öğrenmek için okumaya devam edin.
Sabitler, verinin saklanması için kullanılan basit veri tutuculardır. Sabitler değişkenler gibidir. Değişkenlere göre tek farkları şudur: Değişkenlerde atanan veri sonradan değiştirilebilir veya kaldırılabilir (undefined veya null haline getirilebilir); ancak sabitlerde atanan veri sonradan değiştirilemez veya kaldırılamaz.
Bir sabit oluşturmak için PHP’nin önceden tanımlanmış (predefined) define() fonksiyonunu veya const anahtar kelimesini (keyword) kullanırız.
Aşağıdaki örnekte define() fonksiyonu ve const anahtar kelimesiyle sabit tanımlamayı işleyeceğiz.
define( 'CAR_NAME', 'MERCEDES' );
// define() fonksiyonuyla CAR_NAME adında bir sabit tanımladık ve MERCEDES değerini verdik.
echo CAR_NAME;
// Çıktı: MERCEDES
const COMPANY_NAME = 'Onur Özden Web Çözümleri';
// const anahtar kelimesiyle COMPANY_NAME adında bir sabit tanımladık ve Onur Özden Web Çözümleri değerini verdik.
echo COMPANY_NAME;
// Çıktı: Onur Özden Web Çözümleri
PHP Sabit Oluşturma Kuralları
- Sabit isimleri sadece bir harf veya _ (alt çizgi) ile başlayabilir.
- Sabit isimleri içerisinde (A-Z a-z 0-9) ve _ (alt çizgi) kullanılabilir.
- Sabit isimleri içerisinde hiçbir zaman özel karakterler kullanılamaz.
- Sabit isimleri tanımlanırken, PHP tarafından kullanılmakta olan rezerve kelimeler (if, break, default, new vb.) kullanılamaz.
- Sabitlere atanacak olan değerler daha sonradan değiştirilemez, kaldırılamaz veya undefined (tanımsız) duruma getirilemez.
PHP Sabit Oluşturma Önerileri ve İpuçları
- Sabit isimlerinde global kod yazmak ve okunabilirlik açısından Türkçe karakterler kullanılması önerilmez.
- const ifadesiyle global alanda oluşturduğumuz sabiti local alanda çağırabiliriz. Fakat local alanda oluşturduğumuz sabiti global alanda çağıramayız. Bu kural define fonksiyonuyla oluşturduğumuz sabitler için geçerli değildir. define fonksiyonuyla oluşturduğumuz sabitleri her alandan her alana çağırabiliriz.
- define() fonksiyonuyla oluşturulan varsayılan olarak büyük – küçük harf duyarlıdır. İsteğe bağlı olarak, define() fonksiyonuyla oluşturulan sabitler, fonksiyona üçüncü argüman olarak false atanmasıyla büyük – küçük harf duyarsızlaştırılabilir. const anahtar kelimesiyle oluşturulan sabitler ise büyük küçük harf duyarlı değildir.
- PHP şu anda hem büyük/küçük harfe duyarlı hem de büyük/küçük harfe duyarlı olmayan sabitleri destekler. Büyük/küçük harfe duyarlı olmayan sabitler pratik değildir, işlevsellikteki çeşitli tutarsızlıklara tabidir ve aşırı uygulama karmaşıklığına neden olur. Bu nedenle sabitleri büyük/küçük harfe duyarsızlaştırmak asla önerilmez.
PHP Sabit Örnekleri
Aşağıdaki örnekte sabite sayı (number) veri tipinde değer vermeyi ve sabite bir başka sabitin değerini vermeyi işleyeceğiz.
define( 'SOFTWARE_VERSION', 2.4 );
// define() fonksiyonuyla SOFTWARE_VERSION adında bir sabit tanımladık ve 2.4 değerini verdik.
echo SOFTWARE_VERSION;
// Çıktı: 2.4
const VERSION = SOFTWARE_VERSION;
// const anahtar kelimesiyle VERSION adında bir sabit tanımladık ve SOFTWARE_VERSION sabitinin değerini verdik.
echo VERSION;
// Çıktı: 2.4
Aşağıdaki örnekte sabite dizi (array) türünde veri atamayı işleyeceğiz.
define( 'SOFTWARE_VERSIONS', array(
'alfa version' => 2,
'beta version' => 4,
'stable version' => 7,
) );
// define() fonksiyonuyla SOFTWARE_VERSIONS adında bir sabit tanımladık ve sabit değeri olarak bir dizi (array) tanımladık.
print_r( SOFTWARE_VERSIONS );
// Çıktı: Array ( [version 1] => 2 [version 2] => 4 [version 3] => 7 )
Aşağıdaki örnekte const anahtar kelimesiyle global alanda oluşturduğumuz sabiti local alanda çağıracağız.
const GLOBAL_CONSTANT = 'CONSTANT VALUE';
// Global alanda const anahtar kelimesiyle GLOBAL_CONSTANT adlı bir sabit oluşuturduk ve sabite CONSTANT VALUE değerini verdik.
function simple_function(): string {
return GLOBAL_CONSTANT;
}
// simple_function adlı bir fonksiyon oluşuturduk ve sabiti döndürdük (return).
echo simple_function();
// Döndürdüğümüz sabiti yazdırdık
// Çıktı: CONSTANT VALUE
Aşağıdaki örnekte const anahtar kelimesiyle local alanda oluşturduğumuz sabiti global alanda çağıracağız. Not: Bu örnek hata çıktısı döndürür. Çünkü bu kullanım hatalıdır.
// Local alanda const anahtar kelimesiyle GLOBAL_CONSTANT adlı bir sabit oluşuturduk ve sabite CONSTANT VALUE değerini verdik.
function simple_function(): string {
const GLOBAL_CONSTANT = 'CONSTANT VALUE';
return GLOBAL_CONSTANT;
}
// simple_function adlı bir fonksiyon oluşuturduk ve sabiti döndürdük (return).
echo simple_function();
// Döndürdüğümüz sabiti yazdırdık
// Çıktı: Parse error: syntax error, unexpected 'const' (T_CONST)
// Bu hata çıktısını almamızın nedeni local alanda const anahtar kelimesiyle sabit oluşturamamızdır. Const anahtar kelimesiyle bir sabiti sadece top-level veya global dediğimiz tüm scriptte geçerli olan alanlarda oluşturabiliriz.