Php ‘de Sabit Değerler (Define)

Sitenizde bazı değiskenlerin sabit kalmasını isteyebilirsiniz aslinda degerin siteyi gezinme boyunca sabit kaldığını düşünürsek buna değişken demek ne derece doğru olur bilmiyorum.

Örneğin site girişinde ziyaretciye Türkçe veya ingilizce dil seçtirdiniz ve ziyaretci ana sayfaya girdi ve seçtiği lisana göre sayfası acılması gerekiyor bunun yanı sıra diğer sayfaları gezerkende seçtigi dil ile sayfalar arasinda dolaşmaya devam ediyor olması gerekir. Böyle bir durumda sabit bir değere ihtiyacımız var demektir. Sabit değerleri Define komutu ile tanımlıyoruz.

Şimdi bu işi nasıl yaptığımıza bakalim ;

define ( "Site_dili", "Tr");
define ( "site_baslik", "Flashcentury.net");

işte bu kadar. Ziyaretçi siteden cikana kadar site_dili ‘nin degeri Tr ve site_baslik ‘in değeri Flashcentury.net olacaktır.

Kullanım konusunda normal değişkene göre iki önemli farki vardir birincisi sabir degerlerin basina $ (dollar) isareti konulamaz ikincisi ise sabit egerler hicbir sekilde degistirilemez. Ayni isimde bir degisken taminlanabilir örnegi $site_baslik isimli yeni bir degisken olusturup bir deger verebilirsiniz, Php sabitin ve degiskenin basindaki & (dollar) isaretleriden anlayarak iki ikisini karistirmaz.

If (site_dili == "Tr") {
//Site dili Türkçe olacak
}
elseif (site_dili == "En") {
//Site dili Ingilizce olacak
}

ve

 <?php echo (site_baslik); ?> 

Şeklinde kullanabilirsiz.

Yukarida bahsettigim gibi sabit degerin icerigi belirlendikten sonra degistirilemez fakat eger degistirmeye calisirsaniz da hata vermez fakat bir sabit deger dolumu bosmu bazen kodlama araciligiyla kontrol etmeniz gerekebilir böyle bir durumda defined komutunu kullkaniyoruz. Yukaridaki örnekten yola cikacak olursak eger dil secilmemisse bunu ziyaretciye bildirsin.

if (defined( "site_dili" )) {
//Sabit değer tanımlanmış, yani site dili secilmis
}else{
echo ("Site dili secmediginiz !");
}

Php ‘nin halihazirda sabit değerleri de vardir. Bunlar dan bazilari ;

  • True (doğru) değeri sayisal olarak 1 (bir) ‘dir
  • False (yanlış) değeri sayisal olarak 0 (Sifir) ‘dir
  • __FILE__ : O anda çalışmakta olan Php dosyasının adı (kelimenin önünde ve sonunda iki alt-çizgi var);
  • __LINE__ : Bu ifadenin yer aldığı satırın sayısı (kelimenin önünde ve sonunda iki alt-çizgi var);
  • PHP_VERSION: Php ‘nin sürümü (İki kelimenin arasında bir alt-çizgi var);
  • PHP_OS: Php ‘nin çalıştığı işletim sistemi (İki kelimenin arasında bir alt-çizgi var);

Bunlara ek olarak, E_ERROR, E_WARNING, E_NOTICE ve E_PARSE şeklinde hata durumunda hatanın çeşitli özelliklerini bildiren sabit değerleri de kullanabiliriz.

Php hakkında çok daha geniş bilgiyi phpinfo() fonksiyonunu çağırak alabilirsiniz.

phpinfo() fonksiyonunun kullanimi cok basittir;

Yeni bir Php dosyasi olusturun ve adini phpinfo.php olarak degistirin, sonra phpinfo.php dosyasinin icine su kodu ekleyin

phpinfo();

ve dosyamizi kaydedin.

phpinfo.php ‘yi calistirdiginizda tüm sabit deger deskenlerini size verecektir. Aslinda bu komutun amaci sabit degerleri vermek degil sistem ve server hakkinda bilgi almaktir fakat bu bilgileri sabit degerler araciligiyla verdigi icin bu konudada bilgi sabibi olabilirsiniz.

phpinfo.php dosyasini inceledikten sonra silmeyi unutmayin aksi taktirde güvenlik icin risk teskil edebilir, bu bilgi sadece size yönelik bir bilgilendirme komutudur. Bu dosyanin size verdigi bilgiler baskalarinin eline gectiginde güvenlik aciklarinizi göstermis olursunuz hatta bu baskasi kiyindan kösesinden hackerlik yapmaya calisiyorsa ona yardimci olmus olursunuz:)

Son olarak Session komutundan da bahsetmek istiyorum yaptığı görev bakımından define ‘e benzer fakat cok daha geniş özellikler sağlar örnegin degerini degistirebilir, yasama süresini belirleyebilirsiniz ve belli bir süre sonra bu değer kendi kendini yok edebilir veya ziyaretçi browser ‘i (Web tarayıcısını) kapatıp açsa dahi değer hala yasamını sürdürebilir. Session genellikle üyelik sistemlerinde kullanılır. Geniş bir konu olduğu için ilerleyen derslerde Php ‘de Session Nesnesi  başlıgı altında sizelere anlatacağım…

Leave a Comment

Kategoriler

Tag cloud

Deneme

Deneme Deneme Deneme

Sayfalar

Son Yazılar

Son Yorumlar

Etiketler

Copyright � 2010 Flashcentury