PHP ile uygulama geliştirmek – Bölüm 2’ye Ek

Bu makale < ?PHP echo “Merhaba Türkiye”; ?> gruplarında yazmaya başladığım PHP ile uygulama geliştirmek yazı dizisinin ikinci bölümüdür. Halen gelecek vaat etmeyebileceği konusunda ısrarcıyım. Taslaktır, geliştirilebilir.

Araya baya uzunca bir süre girdi ama bu yazı dizisine devam etmeye kararlıyım. Kaldığımız yerden devam edelim. Bir önceki yazımın sonunda da belirttiğim gibi önceki yazıda constantlardan da bahsetmeyi planlamış fakat unutmuştum. Bir önceki yazıyı güncellemek yerine yeni bir yazı yazarak constantları daha derinlemesine incelemeye karar verdim. Yazının geri kalanında constant kelimesi yerine sabit kelimesini kullanacağım.

Şimdi düşününce önceki yazıda sabitlerden bahsetmemek isabet olmuş. Neden diye soracak olursanız, değişkenlerden, değişken değişkenlerden bahsederken sabitlerden bahsetmek kafa karıştırabilirdi. Neyse lafı fazla uzatmadan konuya girelim.

Değişkenlerle karşılaştırıldığında çok daha az özelliğe sahip olan sabitlerin en önemli özelliği global tanımlayıcılar olmalarıdır. Bir kere tanımladıktan sonra isterseniz fonksiyon içinde isterseniz sınıf içinde rahatça kullanabilirsiniz. Sabitlerde saklayabileceğiniz veri tipleri sınırlıdır(metin(string), tamsayı (integer), mantıksal(boolean) ve ). Global olmaları ve sınırlı veri tipi gibi sebeplerden genellikle uygulamaların ayar bilgilerini saklamak için kullanılır ve bu işte oldukça iyidirler.

Sabitleri tanımlamak değişkenlere nazaran oldukça farklılık gösterir. Sadece define() fonksiyonu ile tanımlanabilirler ve bir kere tanımlandıktan sonra içeriği değiştirilemez ya da yok edilemez (Sihirli sabitler (Magic Constants) haricinde (ki onlar da aslında sabit sayılmazlar)). Değişkenleri tanımlarken değişken isminin başına konan $ işareti sabitlerde kullanılmaz. İsimlendirme konusunda değişkenlerle hemen hemen aynı kurallara tabidir. Büyük/Küçük harf duyarlıdırlar ama bir zorunluluk olmasa da sabit isimleri genelde tamamıyla büyük harflerden oluşur. Geçerli bir sabit ismi bir harf ya da alt çizgi ile başlar ve devamında istenildiği kadar harf, sayı ya da alt çizgi kullanılabilir.

<?php
// Geçerli sabit tanımlamaları
define("MEYVA", "Elma");
define("SEBZE3", "Patlıcan");
define("_ARABA", "Şahin");

// Geçersiz sabit tanımlamaları
define("3SEBZE", "Patlıcan");
define("SEBZE-3", "Patlıcan");
?>

Ufak bir uyarı; aşağıdaki kullanım doğru ve geçerli olmakla beraber kullanılmaması tavsiye edilir. PHP gelecekte sizin verdiğiniz isimle aynı isimde bir sihirli sabit tanımlarsa uygulamanızda problemler ortaya çıkabilir.

<?php 
define("__SEBZE__", "Patlıcan");
?>

PHP’de önceden tanımlanmış bir çok sabit vardır. Bunları Öntanımlı Sabitler(Predefined Constants) başlığı altında PHP Manual‘da bulabilirsiniz. (PHP_OS, PHP_VERSION vb.) Bir çok öntanımlı sabit bulunmasına rağmen her zaman bunların hepsini kullanamayabilirsiniz. Bazı öntanımlı sabitler belli uzantıların (extension) yüklü olmasını gerektirir. (PEAR_INSTALL_DIR vb.) Değişken yaratırken ve kullanırken bunları aklınızdan çıkarmayın.

Gelelim yazıda da bir kaç kez adı geçen sihirli sabitlere. Şu an için 5 adet olan bu sabitlerin isimleri sabit olsa da belirli durumlarda değerleri değişebilir.

İsim Açıklama
__LINE__ O an PHP derleyicisi tarafından İşlenen satır numarası
__FILE__ Çalışmakta olan sayfanın tam adresi
__FUNCTION__ İşletilmekte olan fonksiyonun ismi
__CLASS__ İşletilmekte olan sınıfın ismi
__METHOD__ Sınıfa ait metodun ismi

Evet, bir bölümün (daha doğrusu ara bölümün) daha sonuna geldik. Önceki yazıda bahsettiğim gibi, gelecek yazıda veri tipleri ve operatörler hakkında karalayacağım.

Mutlu kodlamalar!