if
if komutu bir ifadenin doğru olması halinde izleyen komut kümesini işletir. İngilizce anlamı “eğer” olan kelime üstlendiği görev bakımından da anlamı ile bir bütünlük içindedir.
<?
################
#    if.php    #
################

$a = 5;
$b = 3;
if ( $a > $b )
 {  echo &#8220;a sayısı b  sayısından büyüktür.&#8221;; }
?>
Yukarıdaki kod parçası $a değişkenindeki değerin sayısal olarak $b dekinden büyük olması halinde komut kümesinde belirtilen kodu yerine getirip ekrana &#8220;a sayısı b sayısından büyüktür.&#8220; metnini basacaktır. Aksi taktirde (yani $a&#8217;nın sayısal değeri $b&#8217;ninkinden küçük ise) hiçbir işlem yapılmadan komut kümesindeki kod atlanır.

if... else ...
Bu komutta if komutunda olduğu gibi belirtilen ifadenin doğru olması halinde if ile belirtilen komut kümesini işletir, ifadenin yanlış olması halinde ise else ile belirtilen komut kümesi işletilecektir.
<?
###################
#   if_else.php   #
###################

$a = 2;
$b = 3;
 if ($a > $b) {
     echo &#8220;a sayısı b sayısından büyüktür.&#8221;;
 } else {
    echo &#8220;b sayısı a sayısından büyüktür.&#8221;;
 }
?>
Parantez içindeki mantıksal ifadenin doğruluğu halinde if komutunu izleyen komut kümesini (&#8220;{&#8220; ve &#8220;}&#8221; işaretleri ile sınırlı bölge) işletilir. Yukarıda $a ile belirtilen değişkenin sayısal olarak değeri $b ile belirtilenden büyük olması halinde ekrana &#8220;a sayısı b sayısından büyüktür.&#8221; metni aksi taktirde, yani $a değişkeni sayısal olarak $b'den küçükse, ekrana &#8220;b sayısı a sayısından büyüktür.&#8221; metni basılacaktır. Komut kümesinde belirtilen kod sadece ekrana yazı yazma değil, her türlü işlem için düzenlenebilir.

while
Yine İngilizce anlamı &#8220;esnasında&#8221; olan kelime yaptığı görev itibari ile anlamına yakındır. Parantez içinde belirtilen koşul doğru olduğu sürece istenilen komut kümesini işletir. Aşağıdaki örnek ilk bakışta biraz karışık gelebilir fakat dikkatli ve adım adım takip ederseniz pek de karışık olmadığını anlayacaksınız.

<html>
<head><title>HTML içinde kullanılan PHP</title>
</head>
<body bgcolor="#ffffff" text="#000000">

<?
################
#  while.php   #
################

$a = 1;
while($a < 7):
 echo &#8220;<h$a>Bu h$a ile yazılmış bir başlık.</h$a><br>\n&#8221;;
 $a = $a + 1;
 endwhile;
?>

</body>
</html>

Yukarıdaki örnek hem while döngüsünün kullanımına hem de HTML içinde PHP kullanımına güzel bir örnek oluşturuyor. Kullandığım while döngüsünü aşağıdaki gibi de yazabilirdim.

<html>
<head><title>HTML içinde kullanılan PHP</title>
</head>
<body bgcolor="#ffffff" text="#000000">

<?
################
#  while.php   #
################

$a = 1;
while($a < 7)
{
 echo &#8220;<h$a>Bu h$a ile yazılmış bir başlık.</h$a><br>\n&#8221;;
 $a++;
}
?>

</body>
</html>

Sonuç yine aynı olacaktır. Kullanım açısından bir fark yoktur hangisinin kullanılacağı programcıya kalmıştır fakat ben örneklerimde hep ikinci kullanımı tercih ediyorum.
Yukarıdaki örnekte yabancı olduğunuz bir kullanım $a++ ifadesidir (Bu kullanımın aynısı C&#8217;de de vardır) Bu ifade $a = $a + 1 ifadesi ile aynıdır (Programcılıkta çok kullanılan bir ifadedir fakat deneyimi olmayanlar biraz zorlanacaktır). Bunun anlamı, &#8221;$a&#8217;daki değeri bir arttır ve sonra bu değeri $a&#8217;nın yeni değeri olarak ata&#8221; dır. Yani $a = 1 ise $a++&#8217;dan sonra $a = 2 olacaktır. Aynı şekilde $a--'de, &#8220;$a&#8217;nın değerini bir azalt ve bu değeri $a&#8217;nın yeni değeri olarak ata&#8221; dır.
Yukarıdaki örnekte ilk olarak $a değişkenine 1 değeri atanıyor ve bu <h$a> ifadesi ile bir HTML etiketine çevriliyor. $a = 1 değeri için bu ifade <h1>, $a = 2 için bu ifade <h2> ... diye değerler alır. while döngüsü ile $a&#8217;nın alabileceği en son değerin 6 olduğu belirtilmiştir ($a < 7, yedi olduğu an döngü son bulur!). $a&#8217;nın 7 değerini alması ile belirtilen koşul yanlış olur (yani 0) ve döngü işletilmez. Eğer $a++ ifadesi kullanılmamış olsaydı, program sonsuz döngüye girecekti bu da ekrana sonsuz kere <h1> etiketi ile belirtilen metnin basılması demektir. (Aslında sunucu sistemdeki PHP ayar dosyasında öntanımlı olarak PHP dosyalarının maksimum çalışma süreleri 30 saniye olarak belirlendiği için sonsuz döngü sözcükleri tam olarak doğru değildir).
while döngüsünde koşul önce gözden geçirilir, daha sonra işlemler gerçekleştirilir.

do ... while
do...while döngüsü, while döngüsü ile aynı işleve sahiptir. Yalnız arada bir fark vardır. While döngüsünde koşul döngüye girilmeden kontrol edilir buna karşın do....while döngüsünde koşul döngünün sonunda kontrol edilir.

<?
$a = 0;
do {
  print $a;
} while($a > 0);
?>
Yukarıdaki kod normal while döngüsü ile yazılmış olsaydı, yani aşağıdaki gibi

<?
$a = 0;
while($a > 0) {
  print $a;
}
?>

ekrana hiçbir çıktı vermeyecekti. Halbuki ilk örnekte ekrana &#8220;0&#8221; basılacaktır. Do....while ile oluturulan bir döngü while ile de oluşturulabilir ve benim şahsi görüşüm, while döngüsünün kullanımı daha kolaydır. Tabi ki bu döngünün de kendine has kullanım alanları vardır ama ben şu ana kadar kendi yazdığım betiklerde bu tür döngüler için hep while döngüsünü kullandım.

for
for döngüsü de hemen hemen aynı işlevi görür. Kullanım şeklini, while döngüsündeki örnek ile aynı çıktıyı verecek bir örnek ile açıklamak istiyorum.

<html>
<head><title>HTML içinde kullanılan PHP</title>
</head>
<body bgcolor="#ffffff" text="#000000">

<?
################
#   for.php    #
################

 for ($a = 1; $a < 7; $a++)
 {
  echo "<h$a>Bu h$a ile yazılmış bir başlıktır.</h$a><br>\n";
 }
?>
</body>
</html>

Yukarıdaki kod da while döngüsündeki ile aynı çıktıyı verir. for döngüsünde değişkenin başlangıç değeri ilk olarak yazılır, daha sonra koşul ve en sonunda ise değişken için işletilmesi gereken bölüm gelir. Yani kullanımın kalıbı
 for (ilk_değer;koşul;işlem)

şeklindedir.
Tabii benim kullandığım örnek tüm döngüler için geçerli, öyle durumlar ile karşılaşırsınız ki alternatifiniz olmaz yani sadece for ya da while döngüsünü kullanabilirsiniz. Nasıl olsa hepsi aynı işi yapıyor diye üstten bakıp geçmeyin, iyice kavrayın.

switch
switch döngüsü aslında iç içe geçmiş if döngüleridir. Fakat, kişisel deneyimlerime dayanarak söylüyorum, birçok if kullandığınız bir döngüde iş bazen gerçekten içinden çıkılmaz bir hal alıyor. Mesela bir web formu ile (drop-down menu ile) size bir değer gelecek. Siz bu değerin ne olduğunu anlamak istiyorsunuz. Bunun için menüde önceden tanımlı değerler arasında bir secim yapılır. İşte bu seçim için switch döngüsü kullanılır. Aşağıdaki dosyaları yorum kısımlarında belirtilen isimler ile kaydedin ve daha sonra istemcinizden menu.html dosyasını açın.

<!-- menu.html adı ile kaydedin -->
<html>
  <head>
    <title>Menu</title>
  </head>
  <body bgcolor="#ffffff" text="#000000">
    <form action="menu.php" method="post">
      <b>İşletim sisteminizi seçin</b><br>
      <select name=&#8221;os_type&#8221; size=&#8221;1&#8221;>
        <option value=&#8221;win&#8221;>Windows 9x</option>
        <option value=&#8221;winnt&#8221;>Windows NT</option>
        <option value=&#8221;linux&#8221;>Linux</option>
        <option value=&#8221;unix&#8221;>UNIX</option>
        <option value=&#8221;os2&#8221;>OS/2</option>
        <option value=&#8221;macos&#8221;>MacOS</option>
      </select>
      <input type="submit" value=&#8221;  Sorgula  &#8220;>
    </form>
  </body>
</html>

<?
// menu.php adı ile kaydedin

switch($os_type)
{
  case &#8220;win&#8221; :
     echo &#8220;Kullandığınız işletim sistemi Windows 9x&#8221;;
     break;
  case &#8220;winnt&#8221; :
     echo &#8220;Kullandığınız işletim sistemi Windows NT&#8221;;
     break;
  case &#8220;linux&#8221; :
     echo &#8220;Kullandığınız işletim sistemi Linux&#8221;;
     break;
  case &#8220;unix&#8221; :
     echo &#8220;Kullandığınız işletim sistemi UNIX&#8221;;
     break;
  case &#8220;os2&#8221; :
     echo &#8220;Kullandığınız işletim sistemi OS/2&#8221;;
     break;
  case &#8220;macos&#8221; :
     echo &#8220;Kullandığınız işletim sistemi MacOS&#8221;;
     break;
}
?>
Yukarıdaki örnek kullanıcıya kullandığı işletim sistemini soruyor ve gelen cevap doğrultusunda döngüde belirtilen kısmı işletiyor. Kullandığım break komutu programın o kısmının işletilmesi halinde döngüden çıkılmasını sağlar, yani kullanıcı işletim sistemin Linux olarak işaretlemişse Windows, WindowsNT ve en son Linux bölümü işletilir. Linux bölümündeki &#8220;Kullandığınız işletim sistemi Linux&#8221; metni ekrana basılır ve bir sonraki komut olan break işletilir, break komutunun işlemesi ile döngüden çıkılır ve böylece diğer değerler kontrol edilerek vakit kaybedilmez.
switch döngüsünde kullanılan ve benim şu örnekte kullanmadığım bir özelliği daha var: default seçeneği.
Bu seçenek diğer hiçbir seçim doğru olmadığı taktirde çalıştırılacak kısımdır. Bir örnek vermek gerekirse.
<?
// menu.php adı ile kaydedin

$i = 5;
switch($i)
{
  case &#8220;2&#8221;:
     echo &#8220;Değeri 2&#8221;;
     break;
  case &#8220;3&#8221;:
     echo &#8220;Değeri 3&#8221;;
     break;
  default:
     echo &#8220;Değeri bilinmiyor&#8221;;
}
?>
Bu kod ekrana &#8220;Değeri bilinmiyor&#8221; yazacaktır. Çünkü siz $i değişkenine tanımlı olan 2 ve 3 değerleri dışında ne değer verirseniz verin bu iki koşul dışında kalan bölüm yani default ile tanımlı bölüm işletilecektir. alıntıdır.

Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.