Sabitler Ve Kuralları
1 0 Emirhan Yıldırım 14 Mayıs 2020 Perşembe Edit this post
Php'de sabitler, php'de sabitler nasıl kullanılır? Php'de define() ve const() kullanımı ve kuralları
Sabitlerde aynı değişkenler gibi veri tutuculardır.Kuralları hemen hemen değişkenler ile %90 aynıdır fakat yapıları çok çok farklıdır.Dilerseniz kurallarımızdan bahsedelim ve daha sonra örneklerimize geçelim.
1:Sabitler define() veya const fonksiyonu ile tanımlanırlar.
2:Sabit isimleri mutlaka bir harf yada alt çizgi(_) ile başlamalıdır.
3:Sabit isimleri asla bir rakam ile başlayamaz.
4:Sabit isimleri içerisinde kesinlikle boşluk veya hiçbir şekilde Türkçe karakter barındıramazlar.
5:Sabit isimleri Php tarafında kullanılan ön tanımlı fonksiyon adları ile başlayamazlar.
6:Sabit isimleri büyük küçük harf duyarlıdır.Eğer istenilirse devredışı bırakılabilir.
7:Sabit isimleri birden fazla kez tekrar edilemez.
8:Sabitler Global/local yani kapsama alanları kurallarına tabi değillerdir.Yani her alandan erişilebilirler.
Öncelikle define() iki parametreden oluşur yani define("PARAMETRE1","Parametre2"); şeklinde iki parametre girili ve noktalı virgül ile sonlandırılır.PARAMETRE1 olan kısma sabitimizin adı Parametre2 olan kısma ise sabitimizin değeri yer alır.Dikkat ettğiniz üzere "PARAMETRE1" yani sabitin adını büyük harflerle yazdım buda demek oluyorki sabit isimleri büyük harflerle tanımlanır fakat küçük harflerle tanımlamakta hata değildir. Php tarafından biz web yazılımcılara sabitlerin isimlerinin büyük harflerle yazmamız önerildiği için büyük harflerle yazıyoruz.Hemen kurallarımızı uygulamaya geçelim.
Yukarıdaki örnekte gördüğünüz gibi bir "ISIM" adında sabit oluşturduk ve içerisine "Ahmet" adında bir veri depoladık şimdi hemen bunu birde diğer şekilde yani cons kullanarak yapalım;
const ISIM = "Ahmet"
Yukarıdaki örneğimiz ise define() ile yaptığımız örnek ile birebir aynı şekilde çalışmaktadır siz isdeğinizi kullanabilirsiniz ama en çok kullanılanı define() fonksiyonudur.İkinci kuralımızı hemen uygulayalım;
const _ISIM = "Ahmet";
Yukarıdaki örneklerde ikinci kuralımızı kullandık ve sabit ismimizi alt çigi ile başlayarak oluşturduk.Hemen üçüncü kuralımızı uygulayalım;
const 3ISIM = "Ahmet";
Yukarıdaki iki örnek HATALIDIR çünkü 3.kuralımıza göre sabit isimleri aynı değişkenlerde olduğu gibi hiçbir zaman sayı ile başlayamazlar! Fakat illa değişken veya sabit isimlerinizde sayı kullancak olursanız önce alt çizgi daha sonra koymak isteğiniz sayıyı numarayı koyabilirsiniz şu şekilde yapabilirsiniz;
const _3ISIM = "Ahmet";
4.Kuralımız olan Türkçe karakter kuralımızı uygulayalım;
const İSİM = "Ahmet";
Yukarıdaki gördüğünüz örnekler HATALIDIR çünkü 4.kuralımıza göre sabit isimleri hiçbir zaman Türkçe karakter içeremezler.Bu iki örneği çalıştırdığınızda büyük ihtimalle çalışacaklardır fakat çalıştırkları için bu örnekler hatalı değildir diye düşünmeyiniz çünkü her ortamda çalışmayabilirler örneğin bu uygulama bir gerçek sunucu üzrinde çalışmayabilir.Kısacası siz her ihtimale karşı ileride sorun yaşamamak adına hiçbir zaman hiçbir yazılım dilinde hiçbir şekilde Türkçe karakter kullanmaktan KAÇININIZ.Hadi 5.kuralımızı ugulayalım;
const ECHO = "Ahmet";
Yukarıdaki örneklerimizde hatalıdır çünkü 5.kuralımıza göre Php tarafından kullanılan ön tanımlı fonksiyonlar hiçbir zaman değişken adı olarak veya sabit adı olarak kullanılamazlar.Ve 6.kuralımıza geçelim;
Yukarıdaki örneklerimizde çıktı esnasında hata alırız çünkü 6.kuralımıza göre sabitler büyük/küçük harf duyarlıdır.Yani dikkat edecek olursanız bizim sabit isimlerimiz büyük harflerle yazmıştık "ISIM" daha sonra onları çağırırken küçük harfler kullandık "isim" dolayısıyla 6.kuralımızı ihlal etmiş olduk ve sonuç olarak ekranımızda bir hata meydana geldi fakat biz bu hatayı ortadan kaldırabiliriz şöyle ki kuralımızda istenecek olursa büyük/küçük harf duyarlılığı kaldırılabilir demiştik dilersniz şimdi hatamızı kaldıralım ve örneğimizi çalışır hale getirelim burada dikkat ettiyseniz her örneklerimzi iki metod ile yaptık hem define() hemde const kullanarak ama büyük küçük harf duyarlılığının ayarı sadece define() fonksiyonunda mevcuttur o yüzden sadece define() kullanarak devam edelim;
Artık yukarıdaki örneğimizde doğru şekilde çalışacaktır istedğiniz gibi büyük küçük harf yazabilirsiniz gördüğünüz gibi isim parametresinden sonra bir virgül bıraktık ve "True" ifadesini ekledik artık büyük küçük harf sıkıntısı çekmeksizin sabitlerinizi oluşturabilirsiniz.Hadi geçelim 7.kuralımıza;
const ISIM = "Mehmet";
Yukarıdaki örneklerimiz hatalıdır çünkü 7.kuralımıza göre sabit isimlerimiz birden fazla kez kullanılamazlar.Biz burada görüğünüz gibi iki metodumuzdada "ISIM" sabit ismini ikişer kere kullandık dolayısıyla hatalı bir işlem yapmış olduk eğer değişken olsaydılar hiçbir şekilde hata almicaktık hatırlamak adına yeride gelmişken şöyle ufak bir örnek yapalım;
$isim = "Ahmet;
$isim = "Mehmet;
Yukarıdaki değişken örneğimizi hatırlamak adına yaptık ve değişkenlerdeki kurallarımızı hatırlıyorsanız iki veya birden daha fazla kez aynı değişken ismini kullanarak değişken tanımladığımızda her zaman sondaki değişkenimizin içeriği geçerli kılındığı için bu örneğimizde ekrana "Mehmet" yazacaktır.Hadi geçelim 8. kuralımıza;
const ISIM = "Mehmet";//Hata Const ile local alandan global alana veri aktarımı yapılamaz!
Yukarıdaki örneğimizde bir fonksiyon içine sabit oluşturduk hatırladığınız üzere süslü parantezler içerisi local alandı yani biz local alana sabitimizi oluşturmuş olduk ve global alanda sabitimizi seslediğimizde sabitimiz ekrana sorunsuz bir şekilde gelmiş oldu çünkü 8.kuralımıza göre sabitler global/local kapsama alanları kurallarına tabii değillerdi fakat bu yapının aynısın const ile kurduğumuzda hata alırız çünkü const fonksiyonu local alanda oluşturulup global alanda ÇAĞIRILAMAZ!. Peki birde tam tersini yapalım sabitlerimizi global alanda tanımlayıp local alanda çağıralım;
Yukarıdaki iki örnek sorunsuz bir şekilde çalışacaktır.Çünkü kuralımızın gereği sabitler local ve global kapsma alanları kuralarına tabi değildi fakat sadece const fonksiyonunu local alanda tanımlayıp global alanda çağıramıyorduk.Onun dışında globalden tanımlayıp local alandan erişebiliyoruz.Define() fonksiyonunu ise gördüğünüz gibi hem local alandan tanımlayıp global alandan erişebiliyoruz, hemde global alanda tanımlayıp local alandan erişim sağlayabiliyoruz.
Ashu@Mirza.Vns 18 Temmuz 2020 03:57
KodlaMax: Sabitler Ve Kuralları