Merhaba Sevgili Okurlar,
Daha önce bahsettiğim PHP 5’in ileri seviyesine kadar olan yazı dizimi sonunda yazmaya başlayabildim. Daha önce benim gibi Microsoft platformunda programlama yapmış kişiler için ara, ara Microsoft platformu ile karşılaştırmalar yapacağım. Hemen ilk dersimize başlayalım.
<?php
$Adiniz = 15;
$Yasiniz = “Hakan”;
?>
PHP dilinde her dilde olduğu gibi değişkenler mevcuttur. Değişken nedir? Sorusunu soracak olursak. Değişkenler bellekte atadığımız değerleri tutmakla görevlidirler. Yani bunu kavramak adına şöyle açıklayabiliriz. Değişkenleri bir kap olarak düşünün. Elinizde bir kap var ve bunun içine ne koyacağınıza kim karar verebilir? Tabii ki siz, şimdi biz elimize bir “$Adiniz” isminde kap aldık birde “$Yasiniz” isminde bir kap aldık. Bunların içine de değerleri şöyle yerleştirdik.
$Adiniz Kabına 15 değerini koyduk.
$Yasiniz Kabınada Hakan değerini koyduk.
Burada bir çelişki olduğunu sezebilirsiniz. Bunu bilerek yaptım. Yani verdiğimiz değişkenin adının şimdilik pek bir önemi yoktur. Asıl olan içindeki değerdir. Çünkü değişkenler daha öncede belirttiğim gibi içindeki değerleri bellekte tutar ve bizim verdiğimiz değişken adları ile erişmemizi sağlarlar. Ama ileride değişken isimlendirmesinin standartlarına ve önemine de değineceğim.
Dikkat ettiyseniz değişkenlerin önünde dolar “$” işareti olduğunu görmüşsünüzdür. PHP dilinde bir değişken tanımlarken başına “$” dolar işaretini klavyemizden Alt Gr + 4 tuşuna basarak koymamız gerekmektedir. Bunu yaparak PHP derleyicisine bunun bir değişken olduğunu bildirmiş oluyoruz. PHP derleyicisinin ne olduğunu bilmiyorsanız. Kısaca açıklayayım. Dinamik programlama dilleri, statik diller gibi tarayıcı tarafında çalışmazlar. Dinamik diller sunucu tarafında çalışır ve yorumlanırlar ardından yorumlama sonucu oluşan HTML kodunu istemciye gösterirler. Grafiksel olarak anlatacak olursak aşağıdaki grafiği inceleyebilirsiniz.

Yukarıdaki grafiği açıklayalım.
İlk olarak istemci yani bizler. Internet Explorer,Firefox,Safari,Chrome gibi web tarayıcıları ile sürekli internet sayfalarında dolaşmaktayız. Web tarayıcımızı açıp bir internet sayfasının adresini yazdığımızda arka planda olan olaylara şöyle bir bakalım.
- Tarayıcıya http://hakandamar.com yazdık ve ENTER tuşuna bastık.
- 2. Tarayıcı adı çözümledi ve geçerli bir adres ise alan adının NS kayıtlarına baktı.
- 3. NS kayıtlarındaki IP adresine bağlantı yani Web Sunucusuna bağlandı.
- 4. Web sunusundan ilgili alan adına ait web sayfasını istedi.
- 5. Eğer dinamik bir programlama dili ile geliştirilmiş ise web sunucusu bu dil’in derleyicisi ile iletişime geçip kodları yorumlattı ve HTML çıktısını tarayıcıya gönderdi.
- 6.Daha sonra web tarayıcımızda ilgili sayfa görüntülendi.
- 7. Statik bir dil ile yazılmışsa web sunucusu direk sayfayı tarayıcıya gönderdi. Sayfa tarayıcı taraflı programlama kodları içeriyorsa tarayıcıdayken okundu ve istemciye gösterildi.
Yukarda ki tanımlardan yapancı gelebilecek NS kavramı vardır. Bunu da hemen kısaca açıklayayım. NS(Name Server) ad sunucusu anlamına gelmektedir. Alan adlarının, sunucular ile iletişime geçmesi için gerekli olan köprü görevini üstelenen sunucudur. Asıl ismi DNS(Domain Name Server) Alan Adı Sunucusu anlamına gelmektedir. İleride DNS ile ilgili ayrıntılı bir makale yayınlayacağım. Ayrıntılı bilgiye yine web sayfamdan ulaşabilirsiniz.
Şimdi PHP’nin de dinamik bir programlama dili olduğunu öğrendik ve dinamik programlama dillerinin nasıl çalıştığını da kavramış olduk.
Tekrar kodlarımıza dönecek olursak. Kodlarımızı bir tag(etiket) arasına yazdık. Bu etiketler <? Ve ?> etiketleridir. Bu tür syntax(yazım kuralı)’lar her programlama dilinde vardır. Bu sayfa sunucuda yorumlandığında <? İle ?> etiketleri arasında kalan kodların dinamik bir programlama kodu olduğunu sunucuya anlatıyor ve bu kodların sunucu tarafında yorumlanıp çıktısı olan HTML sonucunun ise istemciye gönderilmesi gerektiğini anlatıyor.Böylece sunucu salt HTML kodları ile PHP kodlarını sayfa içerisinde ayırt edebiliyor.
Son olarak sayfamızı nasıl kaydedeceğimiz hakkında bilgi vermek istiyorum. Sayfalarımızı Notepad++ isimli program ile geliştirebiliriz fakat uzantılarını notepad ile yazsak bile mutlaka “DosyaAdi.php” şeklinde yapmamız gerekiyor. Uzantının önemini açıklamak gerekirse; Web sunucusuna hangi programlama dilinin hangi derleyici ile çalışacağını sunucu ayarlarını yaparken söylenir. Örneğin; PHP dili için Windows sunucularına Extension Map bölümünden *.php olan yani tüm “PHP” uzantılı dosyaların php-cgi.exe veya ISAPI_PHP.dll gibi dosyalarından birini kuruluma göre vererek derlenmesini sağlarız. Biz bu kısım ile pek ilgilenmeyiz çünkü bu konular biz yazılımcıların değil Sistem uzmanlarının işleridir. Biz programımızı yazar sunucumuza yükleriz. Gerisi sistemcinin problemidir.
Neyse tekrar konumuza yoğunlaşacak olursak, bir değişkenin “$DegiskenAdi “şeklinde tanımlanacağını öğrendik. Bir değişkene değer vermek istersekte “$DegiskenAdi = Değeri” şeklinde, eşittir operatörünü kullanarak yapıyoruz. İleride Operatörler konusunu işleyeceğimizden şimdilik operatör nedir? Hangisi ne işe yarar? gibi sorulara takılmayın. Hepsini anlatacağım.
Not: Bir değişken oluşturduğumuzda ille değerini vermek zorunda değiliz. İleride de değişkene değer ataması yapabiliriz. Fakat boş bir kap ile yemek yapabilir miyiz? Değersiz değişken tanımlamakta mantıksız olacağında. Her değişkene bir değer atamalıyız. Bunu ilk oluşturduğumuz zaman yapmayı alışkanlık haline getirirsek çok iyi olur. Çünkü ileride iki, üç bin değil, yüz, yüzeli bin satırlık web uygulamaları yazabiliriz. Böyle bir uygulamada değersiz değişkenlerin bulunması programın hata vermesine sebep olabilir. Hazır değişkenlerin özelliklerinden bahsediyorken, Değişken tanımlama standartlarını da anlatayım.
Değişken Tanımlama Standartları;
- ·İçine koyacağınız değer ile ilişkili olmalıdır. Örneğin; Ev Telefonu için; “$EvTel” veya “$evTel” şeklinde olabilir.
- · Tanımlamada iki tür standart vardır. Biri baş harfleri büyük yazarak değişken adı oluşturma diğeri ise ilk değerin baş harfini küçük diğerininkini ise büyük yazmaktır. Yukarıda verdiğim örnekte olduğu gibidir.
- · Aynı tür işlemde kullanacağınız değişkenleri bir arada ve ritmik olarak tanımlayabilirsiniz. Kendi kullandığım yönteme göre örnek verecek olursam. Örneğin; 3 cep telefonu değerini tutmak istiyorsak. “$CepTel1”; , “$CepTel2”, “$CepTel3” şeklinde yapabiliriz.
- · Hazır bir değişken isminde rakam kullanmışken bunu da belirteyim. Değişkenler ASLA her hangi bir sayı ile başlayamazlar. Yani şu tanımlama geçersiz ve yanlıştır. Örn: “$2CepTel”
- · Özel ifadeler içeren tanımlamalarda başına ilgili işlemin baş harfi büyük şekilde koyulur. Çok ileride göreceğiniz INTERFACE kavramında bir function(fonksiyon) tanımladığınızda bunu şu şekilde isimlendirmemiz gerekiyor. Örn: “IMyInterface” gibi. Buradaki “I” INTERFACE’den gelmektedir.
Şimdilik aklıma gelen önemli özellikler bunlardır. İnternet üzerinden araştırarak geniş bir bilgi edinebilirsiniz. Bende ilgili konulara geldikçe size SYNTAX hakkında bilgilerde vereceğim.
Bu ilk dersimiz olduğundan bir takım kavramları da açıkladığımızdan biraz uzun sürdü fakat konular ilerledikçe derslerdeki yazılar daha öz ve kodlar daha çoklaşacaktır.
Son olarak bu örneğin canlı halini görmek isterseniz: http://php.sql.tc/Basic/Degiskenler.phpx adresinden bakabilirsiniz.
Her ders sonunda yazdığımız programların kaynak kodlarına vereceğim bağlantılardan erişebilir ve çalışır halini görebilirsiniz. PHP’nin Basic kısmını bitirip Advanced PHP’ye geçtiğimizde ise tüm yaptığımız çalışmaları indirebileceğiniz bir link olarak size sunacağım.
Basic PHP = Basit giriş seviyesinde php eğitiminin verildiği bölüm demektir.
Advanced PHP = İleri seviye PHP programlama eğitiminin verildiği bölüm demektir.
Enterprise PHP = Bu eğitim ücretli olarak verilmektedir. Kurumsal uygulama geliştirmek için verilen özel eğitimdir. Design Pattern’lar ve ileri seviye kurumsal uygulama geliştirme anlatılmaktadır.
Saygılar,
Hakan DAMAR