PHP’de sabitler (constants), değişmeyen ve programın çalışması boyunca aynı kalan değerleri saklamak için kullanılır. Değişkenlerin aksine, bir sabitin değeri tanımlandıktan sonra değiştirilemez veya yeniden atanamaz. Bu yazıda, PHP’de sabitlerin söz dizimini, öntanımlı ve sihirli sabitleri detaylıca inceleyeceğiz.
Söz Dizimi: PHP’de Sabit Tanımlama
PHP’de sabitleri tanımlamak için define fonksiyonu ve const anahtar kelimesi gibi iki temel yöntem kullanılır:
define() Kullanımı
define() fonkisiyonun temel özellikleri şu şekildedir:
- Sabit isimleri harf veya alt çizgi (_) ile başlamalıdır.
- define() ile tanımlanan sabitler içinde değişkenler bulunamaz.
- Büyük harf kullanımı önerilir (SABIT_ISIMLERI).
define("SITE_ADI", "Benim Web Sitem");
define("MAX_GIRIS_HAKKI", 5);
echo SITE_ADI; // Çıktı: Benim Web Sitem
echo MAX_GIRIS_HAKKI; // Çıktı: 5
const Kullanımı
PHP’de sabitler const anahtar kelimesi ile de tanımlanabilir:
const PI = 3.14;
const UYGULAMA_ADI = "Süper Uygulama";
echo PI; // Çıktı: 3.14
echo UYGULAMA_ADI; // Çıktı: Süper Uygulama
const ve define Arasındaki Fark ve Tercih Durumları
const, sadece global kapsamda veya sınıf içinde kullanılabilir. define() ile farkı, const’un koşullu ifadeler (if, for vb.) içinde kullanılamamasıdır.
- Basit sabitler için const daha okunaklıdır.
- Dinamik olarak belirlenen sabitler için define() daha uygundur.
Öntanımlı Sabitler
PHP, bazı hazır sabitleri otomatik olarak sağlar. Bunlar genellikle PHP’nin çalışma ortamı, sürümü veya hata yönetimi ile ilgilidir.
Sabit Adı | Açıklama |
PHP_VERSION | PHP’nin sürüm numarası |
PHP_OS | PHP’nin çalıştığı işletim sistemi |
PHP_EOL | Satır sonu karakteri (OS’e bağlı) |
DIRECTORY_SEPARATOR | Dosya yolu ayracı (Windows: \, Linux: /) |
E_ERROR, E_WARNING, E_NOTICE | PHP hata seviyeleri |
echo "PHP Sürümü: " . PHP_VERSION . PHP_EOL;
echo "İşletim Sistemi: " . PHP_OS . PHP_EOL;
echo "Dosya Yolu Ayracı: " . DIRECTORY_SEPARATOR;
Bu kod, kullanılan PHP sürümünü, işletim sistemini ve dosya yolu ayracını ekrana yazdırır.
Sihirli Sabitler
Sihirli sabitler, kodun hangi bağlamda çalıştığına bağlı olarak değişen özel sabitlerdir.
Sabit | Açıklama |
__LINE__ | Geçerli satır numarası |
__FILE__ | Çalıştırılan dosyanın tam yolu |
__DIR__ | Geçerli dosyanın dizini |
__FUNCTION__ | Bulunduğu fonksiyonun adı |
__CLASS__ | Bulunduğu sınıfın adı |
__METHOD__ | Çalıştırılan metodun adı |
__NAMESPACE__ | Bulunduğu namespace (isim alanı) |
echo "Dosya: " . __FILE__ . PHP_EOL;
echo "Satır: " . __LINE__ . PHP_EOL;
echo "Dizin: " . __DIR__;
Bu kod, çalıştırıldığı dosyanın yolu, satır numarası ve dizinini ekrana yazdırır.
Bölüm Sonu Canavarı: PHP Sabitler Testi
PHP sabitlerini öğrendin, şimdi bilgilerini pekiştirme zamanı!
📌 Görev: Aşağıdaki sabit tanımlamalarından hangileri hatalıdır? Neden?
define("3SABIT", "Yanlış!");
const ANAHTAR-KELIME = "Hata!";
define("sabit", "Yanlış ama çalışabilir!");
const DOGRU_SABIT = "Bu doğru!";
💡 İpucu: Sabit isimlendirme kurallarını gözden geçir!
📌 Görev: Aşağıdaki kodun çıktısını tahmin et ve nedenini açıkla:
echo "Bu dosya: " . __FILE__ . PHP_EOL;
echo "Şu an bu satırdasın: " . __LINE__;
💡 İpucu: FILE ve LINE sabitleri, kodun hangi dosya ve satırda çalıştığını gösterir!
📌 Görev: Aşağıdaki kodu tamamla:
echo "PHP sürümü: " . ________;
echo "İşletim sistemi: " . ________;
💡 İpucu: PHP’nin sürümünü ve çalıştığı işletim sistemini gösteren öntanımlı sabitleri hatırla!
📌 Görev: Aşağıdaki kod bloğunda bir hata var. Hata nerede ve nasıl düzeltilir?
define("MAX_KULLANICI", 100);
MAX_KULLANICI = 200; // HATA!
echo MAX_KULLANICI;
💡 İpucu: Sabitler değiştirilebilir mi? Neden?