Geçen ayki sayımızda Php'ye giriş yapmış olup, söz diziliminin nasıl olduğundan, genel olarak kullanılan operatörlerden bahsetmiştik. Şimdi ise sıra geldi, dizilere, döngülere, if-else cümlelerine ve formlara. İlk olarak if-else cümleciklerinden bahsedelim.

If-Else Cümlecikleri

Php'de yaptığımız işlemlerin sonuçları tek bir tane olabileceği gibi, bir işlem birden fazla sonuç da doğurabilir. If-else cümleleri de karşımıza çıkan farklı durumlara göre farklı işler yapabilememize olanak sağlar, yani durum kontrol mekanizması oluşturur. Söz dizimi oldukça basit bir yapıdadır.

<?
  if (karşılaşılabilinecek muhtemel durum)
  {
    eğer durum sağlanırsa
    çalıştırılacak komutlar
  }
  else
  {
    durum sağlanmamışsa
    çalıştırılacak komutlar
  }
?>

şeklinde bir kullanımı vardır. Bunun dışında "elseif" yapısı da mevcuttur. Bu yapı ise karşılaşabileceğimiz durumların ikiden fazla olması halinde onları ayrı ayrı kontrol etmemize olanak sağlar. Bütün bunları örnekleyecek olursak:

<?
 $sayi=3;
  if ($sayi==1)
    {
      echo "sayı 1e eşittir.";
    }
  elseif ($sayi==2)
    {
      echo "sayı 2ye eşittir.";
    }
  else
    {
      echo "sayı ne 1e eşit, ne de 2ye.";
    }
?>

şeklindeki bir kullanımın sonucu "sayı ne 1e eşit, ne de 2ye." olacaktır. Kurmuş olduğumuz yapı $sayi değişkeninin değerinin 1'e veya 2'ye eşit olup olmadığını kontrol etti. En son olarak da sayının 1'e veya 2'ye eşit olmadığı kararına varıp yapması gereken görevi yerine getirdi.

Diziler

Diziler de değişkenler gibi değerleri depolamaya yarayan yapılardır. Değişik şekillerde kullanılabilirler. Bunlara bir kaç örnek olarak:

$dizi1=array("odtü","bilgisayar","topluluğu");

ya da,

$dizi2[0]="odtü";
$dizi2[1]="bilgisayar";
$dizi2[2]="topluluğu";

şeklinde kullanabiliriz. Bu iki kullanımda $dizi1 ile $dizi2 birbirisinin aynısı yaptık. Dizilerde dizinin ilk elemanı 0. eleman olarak kabul edilmektedir. Bu yüzden,

<?
  $dizi1=array("odtü","bilgisayar","topluluğu");
  echo $dizi1[0];
?>

şeklindeki kullanımda sonuç bize "odtü" olarak dönecektir.

Döngüler

Döngüler, Php'de sıklıkla kullanacağımız yapılardandır. Farklı şekillerde döngülerimizi oluşturabiliriz. Sıklıkla kullandığımız birkaç tane döngü yapısı vardır. Bunlar, "while", "do ... while", "foreach" ve "for" yapılarıdır. Genel olarak kaç defa döngüye gireceğini belirli bir değişken üzerinde belirleriz ve değişkenimizin değerini her döngüye girmesinde değiştiririz. Aksi taktirde sürekli aynı döngüyü dönüp durakacaktır. Kısaca döngülerimizin nasıl kullanıldıklarına bakacak olursak,

while Döngüsü
<?  
  while (Hangi durumlarda döngünün gerçekleşeceği)
  {
    Her bir döngüye girmesinde çalıştırılacak olan komutlar
  }
?>

şeklinde bir kullanıma sahiptir.

<?
  $degisken=1;
  while ($degisken <= 5) 
  {
    echo "Değişkenin degeri= ".$degisken;
    $degisken++;
  }
?>
do-while Döngüsü

Bu döngü çeşidimiz, while döngüsüyle benzer özellikler taşımaktadır. Farklı olarak, "while" kısmında belirtilen durum sağlanmamış olsa bile döngü bir tur döner. Kısaca,

<?  
  do 
  {
    Her bir döngüye girmesinde çalıştırılacak olan
    komutlar
  }
  while (Hangi durumlarda döngünün gerçekleşeceği)
?>

şeklinde bir kullanımı vardır.

<?
  $degisken=1;
  do 
  {
    echo "Değişkenin değeri= ".$degisken;
    $degisken++;
  }
  while ($degisken <= 5)
?>
for Döngüsü

"For" yapısı değer döngü yapılarından biraz daha farklı olarak yapılandırılmıştır. Kısaca gösterecek olursak,

<?  
  for(Değişkenimizin değerinin verilmesi; Döngünün gerçekleşeceği durumlar;
      Her bir döngü sonunda değişkenimizin başına gelecekler)
  {
    Her bir döngünün gerçekleşmesi durumunda 
    çalıştırılacak olan komutlar
  }
?>

Görüldüğü üzere değişkenimizin değerini döngümüzün yapısı içerisinde veriyoruz. Ayrıca sürekli olarak aynı döngünün gerçekleşmemesi için değişkenimizin değerinde yaptığımız değişiklik ise çalıştırılan komutların içinde değil de tekrardan "for" yapısının içerisinde yer almaktadır.

<?
  for($degisken=0;$degisken<=5;$degisken++) 
  {
    echo "Değişkenin değeri= ".$degisken;
  }
?>
foreach Döngüsü

"foreach" yapısı diğer tüm döngüsel yapılardan farklıdır. Bu döngü yapımız herhangi bir arrayın bütün değişkenleri üzerinde işlem yapmaktadır. Kullanımı ise,

<?
  değişkenimize array değeri vermek

  foreach(dizi_adi as degisken)
  {
    Her bir döngünün gerçekleşmesi durumunda 
    çalıştırılacak olan komutlar
  }

?>

şeklindedir.

<?
  $degisken= array("bardak","tabak","canak");
  foreach($degisken as $deger)
  {
    echo $deger;
  }
?>

şeklindeki kullanımda arrayin bütün elemanlarını sırayla döngü gerçekleştiğinde bir değişkene atadık, echo komutu ile ekrana bastırdık. "Foreach" yapısında döngü sayısını, yapmış olduğumuz arrayin eleman sayısı belirlemektedir. Ne kadar büyük bir array ise o kadar çok döngü gerçekleşir.

Fonksiyonlar

Php'de fonksiyonlar belirli işlemlerimizi belirli yollarla yapmamızı sağlayan yapılardır. Kullanacağımız fonkisyonları direk olarak Php kütüphanelerinde var olan fonksiyonlardan seçebileceğimiz gibi, kendimiz de fonksiyonlar tanımlayıp, işlemlerimizi tanımladığımız fonksiyonlar üzerinden yapabiliriz. Fonksiyonlarımızı tanımlarken dikkat etmemiz gereken birkaç önemli nokta bulunmaktadır. Bunlar:

  • Fonksiyonlarımızı tanımlarken function () yapısını kullanılmalı
  • Tanımlanan fonksiyonun ismini belirtilirken, herhangi bir rakam kullanılmamalıdır. Fonksiyon isimleri sadece alfabedeki harfler veya " _ " ile başlayabilir.
  • Fonksiyonun kullanıldığı zaman neler yapacağı { ve } parantezleri arasında belirtilmelidir.
  • Fonksiyon adı, yapacağı iş ile bağlantılı olarak anlaşılır bir ad olursa daha kullanışlı olur.
<?
  function  fonksiyon_adi (Eğer var ise fonksiyonun alacağı argümanlar) 
  {
    Fonksiyonumuz çalıştığı zaman
    yapacağı işlemler
  }
?>

Örnek olarak fonksiyonlar tanımlayacak olursak,

<?
function iki_sayiyi_toplama( $a , $b )
{
  $c= $a+$b;
  echo $c;
}

/* Yukarıdaki örnekte 2 tane argüman alan bir fonksiyon tanımladık ve ikisinin toplamını ekrana yazdırdık. */

function yazdir()
  {
    echo "ODTÜ Bilgisayar Topluluğu";
  }
/* Yukarıdaki örnekte ise argüman almayan ama her kullanıldığında 
"ODTÜ Bilgisayar Topluluğu" yazdıran bir fonksiyon tanımladık. */
?>

Formlar

HTML'de formlardan bahsettiğimizde, Php olmadığı zaman bir kısmının eksik kaldığından bahsetmiştik. Şimdi de sıra eksik olan kısmı tamamlamaya geldi. Formların genel yapısını hatırlayacak olursak, action="degerlendir.php" yapısından ve method="get" ya da method="post" gibi yapılardan söz etmiştik. Post ya da get metodları ile göndermiş olduğumuz verilerin action kısmında belirtmiş olduğumuz sayfada değerlendirmesi yapılırken, hangi verinin hangi form elemanına ait olduğunu algılayamaz. İşte bu nedenle $_GET[] ya da $_POST[] değişkenleri kullanılır. Bu iki yapıdan $_GET[] değişkeni, formumuzdan "get" metodu ile veri yollaması yapıldığında verilerin toplandığı; $_POST[] değişkeni ile formdan "post" metodu ile veri yollaması yapıldığında verilerin toplandığı değişkendir. Yalnız, hala küçük bir sorunumuz bulunmakta, hala yollanan verilerin hangi form elemanına ait olduğunu bilmiyoruz. İşte bu durumda form elemanlarımızı oluştururken onlara verdiğimiz isimlerin önemi ortaya çıkmakta. $_GET[] ve $_POST[] değişkenlerine bu isimler sayesinde hangi verinin hangi form elemanından geldiğini belirmiş oluyoruz. Örnek olarak,

Formun bulunduğu sayfa:

<form action="degerlendir.php" method="post">
  Ad :<input name="ad" type="text" value="" /> <br />
  Soyad :<input name="soyad" type="text" value="" />
  <input type="submit" value="Gönder!">
</form>

Degerlendir.php sayfası ise:

<?
  $adim=$_POST['ad']; /* formdaki "ad" isimli elemandan gelen veriyi tutacak. */
  $soyadim=$_POST['soyad']; /* formdaki "soyad" isimli elemandan gelen veriyi tutacak */

  echo "Adınız: ".$adim;
  echo "<br />";
  echo "Soyadınız: ".$soyadim;
?>

Böyle bir kullanımda formdan yollanılan veriler degerlendir.php sayfasinda isimlerine göre değişkenlere aktarılmış oldu ve sonra da ekrana bastırıldı.

Bu aylık php yazımızdan da bu kadar. Php yazımızın 3. bölümünde “cookie”lerden, oturum yönetiminden, dosyalardan, dosya yüklemeden ve e-mail gönderiminden bahsedeceğiz. Bir sonraki yazıda görüşmek dileğiyle ...