PHP Temel Bilgiler (Devamı ) | Detaylı Anlatım Ders 3

Konu sahibi son olarak 2599 gün önce görüldü
Değişken Tipleri

Tamsayı Değişkenler (Integer)
Bilinen negatif ve pozitif tamsayılardır. Z={..., -2, -1, 0, 1, 2, ... }
Kod:
<?php
$a=5;
$b=-24;
$c=160;
?>

Ondalıklı Sayı Değişkenleri (float)
Ondalık kısmı bulunan negatif ve pozitif sayılardır. Ondalıklı kısmı ayırmak için nokta (.) kullanılır.
Kod:
<?php
$a=5.3;
$b=-2.4;
$c=1.60;
?>

Metin Değişkenleri (String)

Karakterlerden oluşan değerleri saklayan değişkenlerdir. Karakter olarak a-z, A-Z, 0-9 ve diğer simgeler kullanılabilir. String değişkenlere atanacak değerler çift tırnak (" ") arasında yazılır.

Kod:
<?php
$adi="Ali";
$soyadi="KAVAK";
$sifre="Kxt87?_[/";
?>

String ifadeleri kullanırken çift tırnak içerisinde PHP için özel anlama sahip ifadeler varsa bunlar yorumlanır ve bunların karşılıkları kullanılır. Örneğin $ işareti bir değişkenin varlığını söyler. Eğer çift tırnak içerisinde $ ile başlayan bir ifade varsa bu değişken olarak algılanır ve yerine bunun değeri getirilir.
Kod:
<?php
$gun=15;
$ay="Mart";
$yil=2010;
$tarih="Bugün $gun $ay $yil dur. ";
echo $tarih; // Ekrana Bugün 15 Mart 2010 dur. yazacaktır
$c=160;
?>

Eğer string ifadelerin içindeki özel anlamı olan ifadeleri devre dışı bırakmak isterseniz bu ifadelerin önüne \ koymalısınız. (Ekrana \ yazmak isterseniz \\ kullanabilirsiniz)

Kod:
<?php
$gun=15;
$ay="Mart";
$yil=2010;
echo "\$gun=$gun \$ay=$ay \$yil=$yil"; // Ekrana $gun=15 $ay=Mart $yil=2010 yazacaktır
$c=160;
?>

Bir başka yöntem ise string değişken içerisindeki tüm özel ifadeleri devre dışı bırakmaktır. Bunun için çift tırnak yerine tek tırnak kullanılır. Eğer string ifade tek tırnaklar arasına yazılırsa içerisindeki hiçbir özel ifadeye bakılmaz olduğu gibi ekrana yazılır.

Kod:
<?php
$gun=15;
$ay="Mart";
$yil=2010;
$tarih='Bugün $gun $ay $yil dur.';
echo $tarih; // Ekrana Bugün $gun $ay $yil dur. yazacaktır
$c=160;
?>

Örnek: Aşağıdaki örneği inceleyebilirsiniz.

Kod:
<?php
$ali="Ben gelmiyorum!";
echo "Ali o kadar kızdı ki \"Ben gelmiyorum!\" diye bağırdı.";
echo "<br>";
 
$yol="c:\\windows";
echo $yol;
echo "<br>";
 
$tag='<font color="red" size="7">Nasıl Ama!</font>';
echo $tag;
echo "<br>";
 
$ders="PHP'de değişkenlerin önüne \$ işareti konulur. Örnek: \$sayi=15;";
echo $ders;
echo "<br>";
?>

Boolean Değişkenler

Yalnızca true yada false değerini alan değişkenlerdir. Aslında sıfırdan farklı her değer true, geriye kalan 0 yada null ise false olarak bilinir.

Kod:
<?php
$a=true;
$b=false;
$c=1; // $c=true
$d=0; //$d=false
?>

Sabitler Değişkenler

Değeri değiştirilemeyen değişkenlerdir. Bunlar önceden tanımlanır ve program akışında sadece kullanılırlar. Değerleri değiştirlemez. Bir sabit define(değişkenadı, değeri); şeklinde tanımlanır. Aşağıdaki örneği inceleyiniz.

Kod:
<?php
define("pi",3.14); // sabitler kullanılırken önüne $ işareti konulmaz ve adı çift tırnak içinde tanımlanır
echo pi; // ekrana 3.14 yazar.
?>

Açıklamada da yazıldığı gibi sabit değişkenler tanımlanırken ve kullanılırken önüne $ işareti konulmaz. Aşağıda sabitlerin kullanımı ile ilgili olarak yapılan birkaç hata ve açıklaması vardır.

Kod:
<?php
define("pi",3.14); // Doğru bir sabit tanımlaması yapılmıştır
echo $pi; // Hata: Sabitin önüne $ konulmuş
pi=3; // Hata: Sabitin değeri değiştirilmeye çalışılıyor
$alan=pi*2*2; // Burada herhangi bir hata yoktur. Alan hesaplaması için sabit kullanılmıştır.
?>

Birkaç farklı sabit tanımlaması da aşağıda verilmiştir.

Kod:
<?php
define("kullaniciadi","mustix"); // string bir sabit tanımlanmıştır
define("edit",true); // boolean bir sabit tanımlanmıştır
define("yil",2010); // integer bir sabit tanımlanmıştır
define("katsayi",0.013); // float bir sabit tanımlanmıştır.
 
echo kullaniciadi." ".edit." ".yil." ".katsayi." "; // ekrana mustix 1 2010 0.013 yazar
?>

Dizi Değişkenler

Diziler, içerisinde bir çok değer saklayabilen değişkenler kümesi olarak tanımlanabilir. Örneğin 30 kişilik bir sınıftaki öğrencilerin adlarını saklamak üzere 30 tane değişken tanımlamaktansa 30 elemanlı bir dizi tanımlamak daha kolaydır. Diziler konusu diğer değişkenlere göre daha kapsamlı olduğundan derse Diziler adlı konudan devam edebilirsiniz.

Dizi Değişkenler

Diziler, içerisinde bir çok değer saklayabilen değişkenler kümesi olarak tanımlanabilir. Örneğin 30 kişilik bir sınıftaki öğrencilerin adlarını saklamak üzere 30 tane değişken tanımlamaktansa 30 elemanlı bir dizi tanımlamak daha kolaydır.

Dizideki bir değer ulaşmak için indis'ler kullanılır. Aşağıdaki örneği inceleyiniz.

Kod:
<?php
$meyveler[0]="Elma";
$meyveler[1]="Armut";
$meyveler[2]="İncir";
echo $meyveler[1]; // ekrana Armut yazar.
?>

Buradaki 0, 1 ve 2 indislerdir. Elma, Armut ve İncir ise değerlerdir.

Örnek: Günleri saklayan bir dizi tanımlayalım.

Kod:
<?php
$gunler[0]="Pazartesi";
$gunler[1]="Salı";
$gunler[2]="Çarşamba";
$gunler[3]="Perşembe";
$gunler[4]="Cuma";
$gunler[5]="Cumartesi";
$gunler[6]="Pazar";
?>

Burada indis tanımlamaları çok esnektir. Biz burada Pazartesi için 0 kullandık. Sizler Pazartesi için 1 kullanabilirsiniz. Burada yapılan iş aslında diziye yeni değerler eklemektir. Bazen bir dizide kaçtane değer olduğunu, kullanılan enson indisin kaç olduğunu bilmediğimiz durumlar olur. Ya da indisi yazmak istemediğiniz durumlar da olabilir. Bu tür durumlarda diziye ekleme yapmak için şu yöntemi kullanabilirsiniz.

Kod:
<?php
$gunler[]="Pazartesi";
$gunler[]="Salı";
$gunler[]="Çarşamba";
$gunler[]="Perşembe";
$gunler[]="Cuma";
$gunler[]="Cumartesi";
$gunler[]="Pazar";
echo $gunler[3]; // ekrana Perşembe yazar.
?>

Dizilerde indis olarak sayılar kullanmak zorunda değilsiniz. İndis olarak string ifadeler de kullanılabilir. Biz buna değerleri etiketlemek diyoruz. Bir örnekle açıklamak gerekirse. Gerçek hayatta okuldaki odalar numaralandırılmaz. Odalara isimler verilir. Örneğin müdür odasının kapısına Müdür Odası etiketini, öğretmenler odasına Öğretmenler Odası etiketini asarlar. Yani odalar etiketlenir. Benzer mantıkla bir dizideki değerler de etiketlenebilir. Aşağıdaki örneği inceleyiniz.

Kod:
<?php
$personel["güvenlik"]="Ali Kavak";
$personel["sekreter"]="Ayşe Eren";
$personel["müdür"]="Ahmet Ergün";
$personel["hizmetli"]="Ercan Kır";
echo $personel["müdür"]; // ekrana Ahmet Ergün yazar.
?>

Bir dizideki değerleri yukarıdaki örneklerde olduğu gibi tek tek tanımlamak zorunda değilsiniz. Bu değerleri toplu bir şekilde tanımlamak için şu yapıyı kullanmalısınız.

Kod:
$gunler=array("Pazartesi","Salı","Çarşamba","Perşembe","Cuma");
Bu tür bir tanımlamada dizinin ilk değerinin indisi 0, diğerleri sırasıya 1, 2, ... şeklinde devam eder. Ancak siz böyle bir tanımlama yaparken indisin 0 dan başlamasını istemeyebilirsiniz. Bu tür durumlarda her değerin indisi belirtebilirsiniz.
Kod:
$gunler=array(1=>"Pazartesi",2=>"Salı",3=>"Çarşamba",4=>"Perşembe",5=>"Cuma");

Eğer indisler sıralı bir şekilde ard arda gidecekse işlemi biraz daha kısaltabiliriz. Bunun işin ilk değere bir indis verilir. Diğerlerine verilmediği zaman sıradaki indis değerini alırlar.

Kod:
$gunler=array(1=>"Pazartesi","Salı","Çarşamba","Perşembe","Cuma");

Bu tanımlama görüldüğü gibi Pazartesi 1 indisini alırken sırasıyla Salı 2, Çarşamba 3 indislerini alacaktır. Bu işlem bu şekilde devem edecektir.

Aşağıda farklı şekilde tanımlanmış diziler bulunmakadır. İnceleyiniz.

Kod:
<?php
$dersler[1]="Matematik";
$dersler[2]="Fizik";
$dersler[3]="Geometri";
echo $dersler[2]; // ekrana Fizik yazar
echo "<br>";
//----------------------------
$takim[]="Ali";
$takim[]="Ömer";
$takim[]="Erkan";
$takim[]="Serkan";
$takim[]="Emre";
echo $takim[3]; // ekrana Serkan yazar
echo "<br>";
//----------------------------
$gorevler["pazartesi"]="Faturalar ödenecek";
$gorevler["çarşamba"]="Alışveriş yapılacak";
$gorevler["cumartesi"]="Temizlik yapılacak";
echo $gorevler["çarşamba"]; // ekrana Alışveriş yapılacak yazar.
echo "<br>";
//----------------------------
$yaz=array("Haziran","Temmuz","Ağustos");
echo $yaz[1]; // ekrana Temmuz yazar
echo "<br>";
//----------------------------
$bahar=array(1=>"Mart","Nisan","Mayıs");
echo $bahar[3]; // ekrana Mayıs yazar
echo "<br>";
//----------------------------
$sorular=array(15=>"Ram Nedir?",65=>"CPU ne anlama gelir?",18=>"1MB=?KB");
echo $sorular[18]; // ekrana 1MB=?KB yazar.
echo "<br>";
//----------------------------
$futbol=array("kaleci"=>"Can","defans"=>"Ercan","orta"=>"Ali","forvet"=>"şükrü");
echo $futbol["defans"]; // ekrana Ercan yazar
?>

Örnek: Aşağıdaki tabloyu dizi olarak tanımlayalım.

Linux
KDE ------- Pardus
GNOME ------- Fedora
XFCE ------- Xubuntu

Kod:
<?php
$linux=array("KDE"=>"Pardus","GNOME"=>"Fedora","XFCE"=>"Xubuntu");
?>

Örnek: Aşağıdaki tabloyu dizi olarak tanımlayalım.
Diller
  1. PHP
  2. PTYHON
  3. C

Kod:
<?php
$diller=array(1=>"PHP","PYTHON","C");
?>

Örnek: Aşağıdaki tabloyu dizi olarak tanımlayalım.

Kazananlar
  • Ayşe
  • Oya
  • Meral
  • Canan

Kod:
<?php
$kazananlar=array("Ayşe","Oya","Meral","Canan");
?>


Çok Boyutlu Diziler

Dizi içindeki diziler olarak düşünülebilir. Yine bir örnekle açıklamak gerekirse bir otelin katları bir dizi olarak düşünülürse katlardaki odalar da bir dizi olarak düşünülebilir. Dolayısıyla burada dizi içindeki diziler söz konusudur. Başka bir örnek olarak şu verilebilir: Sınıftaki öğrenciler bir dizi, onları notları ise yine bir dizi olarak dününülürse yine karşımıza dizi içindeki diziler çıkmaktadır.

Çok boyutlu dizilerde her boyutun indisi için [ ] kullanılır. Aşağıdaki örneği inceleyebilirsiniz.

Otel
Kat1
  • Oda1 Ali
  • Oda2 Ahmet
  • Oda3 Ömer

Kat2
  • Oda1 Hasan
  • Oda2 Kenan
  • Oda3 Mert
Kat3
  • Oda1 Ayşe
  • Oda2 Fatma
  • Oda3 Hatice

Kod:
<?php
$otel["kat1"]["oda1"]="Ali";
$otel["kat1"]["oda2"]="Ahmet";
$otel["kat1"]["oda2"]="Ömer";
 
$otel["kat2"]["oda1"]="Hasan";
$otel["kat2"]["oda2"]="Kenan";
$otel["kat2"]["oda3"]="Mert";
 
$otel["kat3"]["oda1"]="Ayşe";
$otel["kat3"]["oda2"]="Fatma";
$otel["kat3"]["oda3"]="Hatice";
 
echo $otel["kat2"]["oda3"]; // ekrana Mert yazar
?>

Görüldüğü gibi katlar dizinin birinci boyutu, odalar ise ikinci boyutudur. Aynı diziyi şimdi farklı bir şekilde tanımlayalım.

Kod:
<?php
$otel=array(
 "kat1"=>array("oda1"=>"Ali","oda2"=>"Ahmet","oda3"=>"Ömer"),
 "kat2"=>array("oda1"=>"Hasan","oda2"=>"Kenan","oda3"=>"Mert"),
 "kat3"=>array("oda1"=>"Ayşe","oda2"=>"Fatma","oda3"=>"Hatice")
);
 
echo $otel["kat2"]["oda3"]; // ekrana Mert yazar
?>

Not: En son tanımlanan dizinin sonunda virgül (,) yoktur. Dikkat ediniz. Çünkü virgül dizi elemanlarını ayırır. En son elamandan sonra elaman olmadığından virgül konmaz.

--------------------------------------------------------------------------------------------------------

Bir sınıftaki öğrencilerin matematik dersinden almış oldukları 3 notu öğrenci numaralarına göre saklayan bir dizi tanımlayalım.
Matematik
155
  • 1 52
  • 2 64
  • 3 35
225
  • 1 98
  • 2 90
  • 3 70
302
  • 1 15
  • 2 45
  • 3 63

Kod:
<?php
$matematik[155][1]=52;
$matematik[155][2]=64;
$matematik[155][3]=35;
 
$matematik[225][1]=98;
$matematik[225][2]=90;
$matematik[225][3]=70;
 
$matematik[302][1]=15;
$matematik[302][2]=45;
$matematik[302][3]=63;
?>
Burada birinci boyut öğrenci numaraları (155, 225 ve 302), ikinci boyut ise sınavlar (1, 2 ve 3) olarak düşünülmüştür. Bunlara atanan sayılar ise değerler yani öğrencilerin almış oldukları notlar (52, 64, 35, ...) olarak düşünülebilir. Aynı diziyi toplu bir şekilde tanımlamak istersek aşağıdaki gibi yapabiliriz.

Kod:
<?php
$matematik=array(
 155=>array(1=>52,2=>64,3=>35),
 225=>array(1=>98,2=>90,3=>70),
 302=>array(1=>15,2=>45,3=>63)
);
?>

--------------------------------------------------------------------------------------------------------

Örnek: Aşağıdaki tabloda 3 farklı sınıfın 4'er öğrencisinin gösterildiğini kabul ederek bunu bir dizi olarak tanımlayalım.

Okul
Birinci sınıf
  • Ebru
  • Fuat
  • Gülüzar
  • Emre
İkinci sınıf
  • Zeynep
  • Haşim
  • Merve
  • Nihat
Üçüncü sınıf
  • Raşit
  • Gizem
  • Onur
  • Ayşe

Kod:
<?php
$okul[0][]="Ebru";
$okul[0][]="Fuat";
$okul[0][]="Gülüzar";
$okul[0][]="Emre";
 
$okul[1][]="Zeynep";
$okul[1][]="Haşim";
$okul[1][]="Merve";
$okul[1][]="Nihat";
 
$okul[2][]="Raşit";
$okul[2][]="Gizem";
$okul[2][]="Onur";
$okul[2][]="Ayşe";
 
echo $okul[1][1]; // ekrana Haşim yazar
?>

Yukarıdaki tanımlamada dikkat ederseniz öğrenciler için indis belirtilmemiştir. Dolayısıyla öğrenciler dizinin sonuna eklenecektir. Böylece ikinci boyutun indisleri ise 0,1,2 ve 3 olacaktır. İkinci boyuttaki 0; birinci öğrenci olarak düşünülürse, 1,2 ve 3 ise sırasıyla diğer öğrenciler olarak düşünülebilir. Bu tamamen sizin tasarrufunuzda olan bir anlamlandırmadır. Aynı diziyi faklı bir şekilde tanımlayalım.

Kod:
<?php
$okul[]=array("Ebru","Fuat","Gülüzar","Emre");
$okul[]=array("Zeynep","Haşim","Merve","Nihat");
$okul[]=array("Raşit","Gizem","Onur","Ayşe");
 
echo $okul[1][2]; // ekrana Merve yazar
?>

Dikkat ederseniz burada hiçbir indis belirtilmemiştir. Dolayısıyla her dizi elemanı dizinin sonuna eklenecektir. Böylece her iki boyutun indisleri 0 dan başlayacaktır. Eğer indislerin 1 den başlmasını isterseniz şöyle bir tanımlama yapabilirsiniz.

Kod:
<?php
$okul[1]=array(1=>"Ebru","Fuat","Gülüzar","Emre");
$okul[]=array(1=>"Zeynep","Haşim","Merve","Nihat");
$okul[]=array(1=>"Raşit","Gizem","Onur","Ayşe");
 
echo $okul[1][2]; // ekrana Merve yazar
?>

Şimdi de aynı diziyi iki farklı şekilde daha tanımlayalım.
Aşağıdaki tanımlamada her iki boyutun indisleri 0 dan başlar.

Kod:
<?php
$okul=array(
 array("Ebru","Fuat","Gülüzar","Emre"),
 array("Zeynep","Haşim","Merve","Nihat"),
 array("Raşit","Gizem","Onur","Ayşe")
);
 
echo $okul[1][2]; // ekrana Merve yazar
?>

Aşağıdaki tanımlamada ise her iki boyutun indisleri 1 den başlar.

Kod:
<?php
$okul=array(
 1=>array(1=>"Ebru","Fuat","Gülüzar","Emre"),
 array(1=>"Zeynep","Haşim","Merve","Nihat"),
 array(1=>"Raşit","Gizem","Onur","Ayşe")
);
 
echo $okul[1][2]; // ekrana Fuat yazar
?>

--------------------------------------------------------------------------------------------------------

Dizilerdeki boyut sayısını daha da artırabilirsiniz. O zaman dizi içindeki dizilerin içindeki dizilerden bahsetmiş olursunuz ki bunlarında mantığı yukarıda anlatılan iki boyutlu diziler gibidir. İhtiyaç duyulduğunda bunlar da kullanılabilir. Örneğin 3 boyutlu bir dizi olarak, okuldaki sınıflarda bulunan öğrencilerin coğrafya dersinden aldıkları 2 farklı notu saklayan bir dizi düşünülebilir.

Kod:
<?php
// birinci sınıf
$cografya[0][156][]=74; // birinci sınıfın 156 nolu öğrencisinin birinci coğrafya notudur.
$cografya[0][156][]=68; // birinci sınıfın 156 nolu öğrencisinin ikinci coğrafya notudur.
$cografya[0][174][]=18; // birinci sınıfın 174 nolu öğrencisinin birinci coğrafya notudur.
$cografya[0][174][]=23; // birinci sınıfın 174 nolu öğrencisinin ikinci coğrafya notudur.
 
// ikinci sınıf
$cografya[1][223][]=56; // ikinci sınıfın 223 nolu öğrencisinin birinci coğrafya notudur.
$cografya[1][223][]=61; // ikinci sınıfın 223 nolu öğrencisinin ikinci coğrafya notudur.
$cografya[1][254][]=41; // ikinci sınıfın 254 nolu öğrencisinin birinci coğrafya notudur.
$cografya[1][254][]=63; // ikinci sınıfın 254 nolu öğrencisinin ikinci coğrafya notudur.
 
// üçüncü sınıf
$cografya[2][415][]=33; // üçüncü sınıfın 415 nolu öğrencisinin birinci coğrafya notudur.
$cografya[2][415][]=51; // üçüncü sınıfın 415 nolu öğrencisinin ikinci coğrafya notudur.
$cografya[2][521][]=89; // üçüncü sınıfın 521 nolu öğrencisinin birinci coğrafya notudur.
$cografya[2][521][]=96; // üçüncü sınıfın 521 nolu öğrencisinin ikinci coğrafya notudur.
 
echo $cografya[1][254][1]; // ekrana 63 yazar. ikinci sınıfın 254 nolu öğrencisinin ikinci coğrafya notudur.
?>

Aynı diziyi toplu bir şekilde tanımlayalım.

Kod:
<?php
$cografya=array(
   array( // birinci sınıf
         156=>array(74,68), // birinci öğrenci
         174=>array(18,23) // ikinci öğrenci
   ),
   array( // ikinci sınıf
         223=>array(56,61), // birinci öğrenci
         254=>array(41,63) // ikinci öğrenci
   ),
   array( //üçüncü sınıf
         415=>array(33,51), // birinci öğrenci
         521=>array(89,96) // ikinci öğrenci
  )
);
 
echo $cografya[1][254][1]; // ekrana 63 yazar. ikinci sınıfın 254 nolu öğrencisinin ikinci coğrafya notudur.
?>


if...else Kontrol Yapısı

Belirli kodları belirli şartlara bağlı olarak çalıştırmak için kullanılır. Basit bir ifadeyle eğer böyleyse şöyle yap, şöyleyse böyle yap diyebilmek için kullanılır. Kullanımı şu şekildedir.
Kod:
if(koşul1){
  // koşul1 sağlanırsa çalışacak kodlar
}
elseif(koşul2){
  // koşul2 sağlanırsa çalışacak kodlar
}
elseif(koşul3){
  // koşul3 sağlanırsa çalışacak kodlar
}
.
.
.
else{
  // yukarıdaki hiçbir koşul sağlanmazsa çalışacak kodlar
}

Kontol yapısı if ile başlar isteğe bağlı olarak diğer şartları belirtmek için elseif ile, hiçbir şart sağlanmazsa else ile devam eder. Dikkat edilirse else ifadesinde herhangi bir koşul belirtmedik. Dikkat edilmesi gereken diğer husus ise if, elseif ve else ifadelerinden sonra noktalı virgül (;) konulmamasıdır.

Eğer if, elseif veya else'den sonra çalışması gereken kod bir tane ise { } parantezlerini kullanmak da gerekmez.

Aşağıdaki örneği inceleyiniz.

Kod:
<?php
$a=15;
$b=9;
if($a>$b)
   echo "a değişkeni b'den büyüktür.";
elseif($a<$b)
   echo "a değişkeni b'den küçüktür.";
else
   echo "a değişkeni b'ye eşittir.";
?>

Görüldüğü gibi if, elseif ve else'den sonra birer komut olduğundan { } parantezlerini kullanmadık.



Örnek: Tanımlı olan sayı pozitif ise sayının kendisini ve karesini, değilse Sayı pozitif değil mesajını ekranda gösterelim.

Kod:
<?php
$sayi=-3;
if($sayi>0){
   echo "Sayı=$sayi<br>";
   echo "Karesi=",$sayi*$sayi;
}
else
   echo "Sayı pozitif değil";
?>

Görüldüğü üzere if'den sonra çalışmasını istediğimiz iki tane komut olduğundan { } parantezlerini kullandık. else'den sonra ise tek komut olduğundan { } kullanmadık. Ayrıca tek bir koşula göre işlem yapacağımız için elseif kısmını da kullanmadık.



Örnek: Tanımlı olan kullanıcı adının ve şifrenin sırasıyla mustix ve muric olup olmadığını kontrol eden php kodunu yazalım.

Kod:
<?php
$kullanici_adi="hayrix";
$sifre="muric";
if ($kullanici_adi=="mustix" and $sifre=="muric")
   echo "Giriş Başarılı";
else
   echo "Kullanıcı adı yada şifre yanlış!";
?>

Kod çalıştığında ekrana Kullanıcı adı yada şifre yanlış! mesajını yazacaktır. Çünkü if içerisinde and (ve) mantıksal operatörü ile her iki şartın sağlanması gerektiği söylendiği halde koşullardan biri sağlanmadığı için else kısmı çalışacaktır.



Örnek: Tanımlı olan sayı tek ise sayıyı bir arttıran php kodunu yazalım.

Kod:
<?php
$sayi=7;
if ($sayi%2==1) // sayının 2'ye bölümünden kalan 1 ise
   $sayi++;
echo "Sayı=$sayi"; // ekrana Sayı=8 yazar
?>

Duruma göre kontrol yapısının sadece if kısmını da kullanabilirsiniz. else kısmı olmak zorunda değil. Bir şeye daha dikkat ediniz. { } parantezleri kullanılmadığından if altında sadece $sayi++; komutu çalışmaktadır. echo komutu her halükarda çalışacaktır. Sayıyı değiştirerek farklı sonuçları gözlemleyebilirsiniz.

Şimdi kontrol yapısının farklı bir kullanımına bakalım. Bu kullanım sadece bir değişkene atanacak değeri belirlerken ya da fonksiyona gönderilecek değeri belirlerken kullanılan bir yapıdır. Kullanımı şöyledir:
$degisken=(koşul)?koşul sağlanırsa:koşul sağlanmazsa;

Örneğimizde eğer tanımlı olan sayı tek ise sayının küpünü, değil ise karesini hesaplayıp ekranda yazdıralım.

Kod:
<?php
$sayi=5;
$sonuc=($sayi%2==1)?$sayi*$sayi*$sayi:$sayi*$sayi;
echo "Sayı=$sayi<br>Sonuç=$sonuc";
?>

Aynı örneği if yapısını açıkça yazarak yapalım.

Kod:
<?php
$sayi=5;
if($sayi%2==1)
   $sonuc=$sayi*$sayi*$sayi;
else
   $sonuc=$sayi*$sayi;
 
echo "Sayı=$sayi<br>Sonuç=$sonuc";
?>

Örnek: Eğer tanımlı olan boolean tipindeki değişken true ise false, false ise true yapalım.

Kod:
<?php
$durum=false;
$durum=($durum==true)?false:true;
echo $durum;
?>

Yapılan işi bir cümle olarak söylemek gerekirse şöyle denilebilir. Eğer $durum değişkeni true ise false yap, değilse true yap.
Bir değişkenin true olup olmadığı şöyle de kontrol edilebilir.

Kod:
<?php
$durum=false;
$durum=($durum)?false:true;
echo $durum;
?>

Ekranda true için 1, false için bir şey görünmeyecektir. Açık bir şekilde yazacak olursak:

Kod:
<?php
$durum=false;
 
if($durum)
   $durum=false;
else
   $durum=true;
 
echo $durum;
?>

Dikkat ederseniz if içerisindeki değişken herhangi bir şeyle karşılaştırılmıyor. Sanki burada bir koşul yokmuş gibi geliyor. Burada aslında sorulan şudur:

if ($durum)->Eğer $durum değişkeninde bir değer varsa yada $durum değişkeni true ise

Not: Bir değişkenin değeri sıfırdan farklı ise o değişken true kabul edilir. Aşağıdaki örneği inceleyiniz.

Kod:
<?php
$sayi=-5;
if ($sayi)
   echo "sayi değişkeni true'dur. Yada sıfırdan farklı bir değere sahiptir.";
else
   echo "sayi değişkeni false'dur. Yada sıfırdır. Yada boştur.";
 
echo "<br>";
 
$adi="";
if ($adi)
   echo "adi değişkeni true'dur. Yada sıfırdan farklı bir değere sahiptir.";
else
   echo "adi değişkeni false'dur. Yada sıfırdır. Yada boştur.";
 
echo "<br>";
 
$durum=false;
if ($durum)
   echo "durum değişkeni true'dur. Yada sıfırdan farklı bir değere sahiptir.";
else
   echo "durum değişkeni false'dur. Yada sıfırdır. Yada boştur.";
?>

Örnek: Eğer $sonuc değişkeninde bir değer varsa ekrana Sonuç hesaplandı, yoksa Sonuç hesaplanamadı ifadelerini yazdıralım.

Kod:
<?php
$sonuc="";
echo ($sonuc)?"Sonuç hesapladı.":"Sonuç hesaplanamadı.";
?>

Burada kontrol yapısından dönen değer doğrudan echo fonksiyonuna verilmiştir.

Farklı şekilde örnekler yaparak merak ettiğiniz işlemlerin sonuçlarını rahatlıkla sizler de öğrenebilirsiniz.

switch case Kontrol Yapısı

Seçilen değişkenin değerinin belirli durumlara uyup uymadığını kontrol eden yapıdır. Değişkenin değeri, belirtilen birçok durumdan hangisine uyuyorsa o durum altındaki komutlar çalışır. Bunu, ben if ile de yapabilirim diye düşünebilirsiniz. Doğru düşünüyorsunuz. switch ile yaptığınız işi if yapısı ile de yapabilirsiniz. Burada switch yapısının avantajı daha düzenli kod yazmamızı sağlamasıdır. Kullanımı şu şekildedir.

Kod:
switch ($degisken){
case durum1:
   // durum1 sağlanırsa çalışacak kodlar
   break;
case durum2:
   // durum2 sağlanırsa çalışacak kodlar
   break;
.
.
.
default:
   // hiçbir durum sağlanmazsa çalışacak kodlar
}

Seçilen değişkenin değeri hangi duruma uyarsa o durum altındaki komutlar çalışır. break ifadesi, durum sağlanırsa başka durumlara bakılmasını engellemek için kullanılır. Eğer break kullanmazsanız durumlardan biri sağlandığında, ondan sonraki tüm durumlar da çalıştırılır. Bu genelde istenmez. Son olarak; default ifadesinden sonra break kullanılmadığına dikkat ediniz. Çünkü default'tan sonra başka durum olmadığından break kullanmaya gerek yoktur. Aşağıdaki örneği inceleyiniz.

Kod:
<?php
$sayi=2;
 
switch ($sayi){
   case 0: echo "Sayı 0'dır."; break;
   case 1: echo "Sayı 1'dir."; break;
   case 2: echo "Sayı 2'dir."; break;
   default: echo "Sayı 0,1 ve 2 değildir.";
}
?>

Burada $sayi değişkeninin değerlerine bakıyoruz. Değeri 2 olduğundan ekrana Sayı 2'dir. yazacaktır. echo ve break komutlarını aynı satırda buradaki gibi yazabilirsiniz. Şimdi bu işlemi if yapısı ile yapalım.

Kod:
<?php
$sayi=2;
 
if($sayi==0)
   echo "Sayı 0'dır.";
elseif($sayi==1)
   echo "Sayı 1'dir.";
elseif($sayi==2)
   echo "Sayı 2'dir.";
else
   echo "Sayı 0,1 ve 2 değildir.";
?>
Görüldüğü üzere aynı işlemi rahatlıkla if ile de yapabilirsiniz. Tercih sizindir. Bazı durumlarda switch yapısı daha kolay olabilir.



Örnek: Beş üzerinden tanımlı notun yazı karşılığını ekrana yazdıralım.

Kod:
<?php
$notu=2;
 
switch ($notu){
   case 0: echo "Başarısız"; break;
   case 1: echo "Zayıf"; break;
   case 2: echo "Geçer"; break;
   case 3: echo "Orta"; break;
   case 4: echo "İyi"; break;
   default: echo "Pekiyi";
}
?>


Örnek: Şimdi de sayının tek ya da çift olma durumunu ekrana yazdıralım.

Kod:
<?php
$sayi=23;
switch ($sayi%2){ // sayının 2'ye bölümünden kalan
   case 0: echo "Sayı çifttir."; break;
   default: echo "Sayı tektir."; break;
}
?>


Örnek: Tanımlı olan işleme göre iki sayıyı işleme alıp sonucu ekrana yazalım.

Kod:
<?php
$islem="*";
$sayi1=16;
$sayi2=4;
 
switch ($islem){
   case "+": $sonuc=$sayi1+$sayi2; break;
   case "-": $sonuc=$sayi1-$sayi2; break;
   case "*": $sonuc=$sayi1*$sayi2; break;
   default: $sonuc=$sayi1/$sayi2;
}
 
echo "Sonuç=$sonuc";
?>
Kontrol edeceğiniz değişken sayı olabileceği gibi buradaki gibi string bir ifade de olabilir. Aynı zamanda boolean, sabit ve dizi değişkenleri de burada kullanabilirsiniz.



Örnek: Tanımlı olan kullanıcıya hoş geldiniz mesajı yazdıralım.

Kod:
<?php
$kullanici="Büşra";
$cinsiyet="bayan";
 
switch ($cinsiyet){
   case "bay": echo "Hoşgeldiniz $kullanici Bey"; break;
   default: echo "Hoşgeldiniz $kullanici Hanım";
}
?>


Örnek: Tanımlı olan mevsime göre ayları ekrana yazdıralım.

Kod:
<?php
$mevsim="ilkbahar";
 
switch ($mevsim){
   case "ilkbahar": echo "Mart Nisan Mayıs"; break;
   case "yaz": echo "Haziran Temmuz Ağustos"; break;
   case "sonbahar": echo "Eylül Ekim Kasım"; break;
   default: echo "Aralık Ocak Şubat";
}
?>

Bu kez değişik bir örnek yapalım. Pek kullanılmasa da durum kısmında aşağıdaki gibi bir karşılaştırma da yapabilirsiniz.

Örnek: Sayının negatif, pozitif ya da sıfır olma durumunu ekrana yazdıralım.

Kod:
<?php
$sayi=0;
 
switch ($sayi){
   case 0: echo "Sayı sıfırdır.";break;
   case $sayi>0: echo "Sayı pozitiftir.";break;
   default: echo "Sayı negatiftir.";
}
?>
Not: Burada önce sayının sıfır olma durumunu kontrol ediniz. Aksi halde hatalı sonuç alırsınız. Sıfırdan farklı sayılarla çalışırken istediğiniz sırada durumları ifade edebilirsiniz.



Örnek: 100 üzerinden tanımlanmış bir notun 5 üzerinden karşılığını ekrana yazdıralım.


Kod:
<?php
$notu=64;
 
switch ($notu){
   case 85<=$notu: echo "5-Pekiyi"; break;
   case 70<=$notu: echo "4-İyi"; break;
   case 55<=$notu: echo "3-Orta"; break;
   case 45<=$notu: echo "2-Geçer"; break;
   case 25<=$notu: echo "1-Zayıf"; break;
   default: echo "Başarısız";
}
?>


Örnek: Tanımlı olan 3 sayıdan en büyüğünü bulalım.


Kod:
<?php
$sayi1=10;
$sayi2=7;
$sayi3=15;
 
switch (true){
   case ($sayi1>=$sayi2 and $sayi1>=$sayi3): $eb=$sayi1; break;
   case ($sayi2>=$sayi1 and $sayi2>=$sayi3): $eb=$sayi2; break;
   default: $eb=$sayi3;
}
 
echo "En büyük sayı: $eb";
?>


Görüldüğü gibi durum kısmında mantıksal operatörler de kullanabilirsiniz. Bunun yanında true kısmına bakarsanız burada biraz farklı bir işlem yapılmıştır. Zira kontrol edilen bir değişken değil tam tersine durumdur. Yani durumlardan hangisinin true olduğunu kontrol ettik. Normalde hep bir değişkenin hangi duruma uyduğunu kontrol ediyorduk.



Örnek: Tanımlı olan sayıya karşılık gelen günü ekrana yazdıralım.

Kod:
<?php
$gun=4;
switch ($gun){
   case 1: echo "Pazartesi";break;
   case 2: echo "Salı";break;
   case 3: echo "Çarşamba";break;
   case 4: echo "Perşembe";break;
   case 5: echo "Cuma";break;
   case 6: echo "Cumartesi";break;
   default: echo "Pazar";
}
?>


Örnek: Hafta içi çalışanların maaşına 50 TL, hafta sonu çalışanların maaşına 70 TL ekleyelim.

Kod:
<?php
$maas=500;
$gun="salı";
 
switch ($gun){
   case "pazartesi":
   case "salı":
   case "çarşamba":
   case "perşembe":
   case "cuma":$maas+=50;break;
   case "cumartesi":
   default: $maas+=70;
}
 
echo "Maaş=$maas";
?>
Oldukça ilginç bir kullanım. Biraz açıklamaya çalışalım. Bir durumdan sonra komut yazmak zorunda değilsiniz. Bu, sonraki duruma geçmek için kullanılır. Hafta içindeki günlerden biri ise pazartesi, salı, çarşamba, perşembe ya da cuma olması fark etmiyor. Eğer bu durumlardan birine girilirse break olmadığı için cuma'ya kadar gidilir ve cuma durumunda 50 TL eklenir. Sonra break ile hafta sonuna geçilmesi engelleniyor. Aynı mantıkla cumartesi için break kullanılmayarak pazar gününe gidiliyor ve 70 TL ekleniyor. Diyelim ki; günlerden salı olsun. Salı durumuna girildi break olmadığı için cuma'ya kadar gidildi ve 50 TL eklendi ve break ile çıkıldı. Diyelim ki cumartesi; break olmadığı için pazar'a gidilir ve 70 TL eklenir. Tabiki bu bizim algoritmamızdır. Bilindiği gibi sonuca giden yol tek değildir. Siz de kendi çözümünüzü geliştirebilirsiniz.


for Döngüsü

İstenilen komutları istenilen sayıda çalıştırmak için kullanılır. Döngüyü kontrol etmek için döngü sayacı olarak adlandırılan bir değişken kullanılır. Bu genelde $i değişkenidir. Biz de burada döngü değişkeni olarak $i değişkenini kullanacağız.

Döngü değişkenleri döngünün sınırlarını belirlemek için kullanılır. Ayrıca döngü altında çalışan komutların bir kısmı olarak da kullanılabilir. Örneğin bir dizinin indisi yada ekrana yazılan mesajın bir bölümü olabilirler. Eğer döngünün sınırlar iyi belirlenmezse döngü; sonsuz döngüye, diğer bir ifadeyle kısır döngüye girebilir. Bu durumda tarayıcımız yanıt vermeyebilir.

for döngüsünün kullanımı şu şekildedir.

Kod:
<?php
for(/*başlangıç*/ ; /*koşul*/ ; /*artış miktarı*/){
   // döngü altında çalışacak komutlar
}
?>

Başlangıç: Döngünün kaçtan balayacağını belirtmek için kullanılır.

Koşul: Döngü için belirtilen koşuldur. Bu koşul sağlandığı sürece döngü döner.

Artış miktarı: Döngü değişkeninin kaçar kaçar artacağını belirtmek için kullanılır.

Örneğin 1'den 10'a kadar dönen ve ekrana Merhaba Dünya yazan bir döngü kuralım.

HTML:
<html>
<body>
<?php
for($i=1;$i<=10;$i++){
   echo "Merhaba Dünya";
   echo "<br>";
}
?>
</body>
</html>
İlk örnek olduğundan örneği açıklayılım: Döngü değişkeni olarak $i kullanılmıştır. $i=1 tanımlamasıyla döngünün 1'den başlayacağı belirtilmiştir. $i<=10 koşulu ile döngünün, $i'nin 10'dan küçük yada 10'a eşit olduğu sürece döneceği belirtilmiştir. $i++ ifadesi ile de her döngüden sonra $i'nin 1 arttırılacağı belirtilmiştir.

Örneğimizin ekran çıktısı ise aşağıdaki gibidir.

Kod:
Merhaba Dünya
Merhaba Dünya
Merhaba Dünya
Merhaba Dünya
Merhaba Dünya
Merhaba Dünya
Merhaba Dünya
Merhaba Dünya
Merhaba Dünya
Merhaba Dünya


Örnek: Ekranda alt alta 1'den 10' kadar olan sayıları yazdıralım.

Kod:
<?php
for ($i=1;$i<=10;$i++)
   echo "$i<br>";
?>
Not: Burada for altında çalışan tek komut olduğundan { } parantezlerini kullanmadık.

Aynı örneği iki farklı şekilde yazalım. Buradaki kullanım şekillerine dikkat ediniz.

Kod:
<?php
for ($i=1;;$i++){
   if ($i>10)
      break; // döngüyü kırmak için kullanılır.
   echo "$i<br>"; // Dikkat: Bu komut if yapısına bağlı değildir. {} parantezleri yok.
}
?>

Kod:
<?php
$i=1;
for (;;){
   if ($i>10)
      break;
   echo "$i<br>";
   $i++;
}
?>

Örnek: Şimdiki örneğimizde 1 ile 100 arasındaki sayılardan 5'e bölünebilenlerin toplamını bulalım.

Kod:
<?php
$toplam=0;
for ($i=1;$i<=100;$i++)
   if ($i%5==0) // $i'nin 5'e bölümünden kalan 0 ise
      $toplam=$toplam+$i;
echo "Toplam=$toplam";
?>
Burada şunu hatırlatmakta fayda var. for altında iki komut görünüyor ve { } parantezlerini kullamamız gerekiyor gibi gelebilir. Ancak if yapısı $toplam=$toplam+$i; komutunu, for döngüsü de if yapısını tutmaktadır. Dolayısıyla { } parantezlerini kullanmak gerekmez. Basit bir ifadeyle { } parantezleri kullanılmadığında for, ilk noktalı virgüle ( ; ) kadar olan komutları çalıştırır.

Aynı örneği farklı bir şekilde tekrar yapalım.

Kod:
<?php
$toplam=0;
for ($i=1;$i<=100;$i++)
   $toplam+=($i%5==0)?$i:0;
echo "Toplam=$toplam";
?>
Burada ($i%5==0)?$i:0 komutundan koşula göre ya $i yada 0 döner.

Aslında hiç if yapısı kullanmadan sadece döngü değişkenini beşer beşer arttırarak da aynı işlemi yapabilirsiniz. Ancak o zaman $i sıfırdan başlatılmalıdır.

Kod:
<?php
$toplam=0;
for ($i=0;$i<=100;$i+=5)
   $toplam+=$i;
echo "Toplam=$toplam";
?>


Yukarıdaki örnekte de görüldüğü üzere döngü değişkenini istediğiniz kadar arttırabilirsiniz.

Örnek: 7'den başlayarak üçer üçer 50'ye kadar yazdıralım.

Kod:
<?php
for ($i=7;$i<=50;$i+=3){
   echo "$i<br>";
}
?>


Örnek: Bu örnekte ise döngümüz toplam 1000'den büyük olduğunda dursun. Döngü değişkeni de yedişer yedişer artsın.

Kod:
<?php
$toplam=0;
for ($i=1;;$i+=7){
   $toplam+=$i;
   if ($toplam>1000)
      break;
}
echo "Toplam=$toplam";
?>
Gördüğünüz gibi döngüyü sonlandırmak için; koşul, döngü değişkenine bağlı değildir.



Azalan döngüler de yapabilirsiniz. Bunun için koşulu dikkatli yazmak gerekir. Aksi halde sonzuz döngüye girilebilir. Ayrıca döngü değişkeni azaltılmalıdır.

Örnek: Tanımlı olan metni küçükten büyüğe doğru başlık şeklinde yazdıralım.

Kod:
<?php
for ($i=6;$i>=1;$i--)
   echo "<h$i>Her şakanın yarısı gerçektir.</h$i>";
?>


Örnek: 2010'dan 1920'ye kadar olan yılları açılır listeye ekleyelim.

Kod:
<?php
echo "<select name='yillar'>";
for ($i=2010;$i>=1920;$i--)
   echo "<option value='$i'>$i</option>";
echo "</select>";
?>

for Döngüsüyle İlgili Örnekler

Örnek: Tanımlı olan sayının çarpım tablosunu ekrana yazdıralım.

Kod:
<?php
$sayi=7;
for ($i=1;$i<=10;$i++)
   echo "$sayi x $i = ",$sayi*$i,"<br>";
?>
Not: Unutmayın artimetik işlemler çift tırnak içinde yapılmaz.



Örnek: Tanımlı olan sayının faktöriyelini bulalım.


Kod:
<?php
$sayi=5;
$faktoriyel=1;
for($i=1;$i<=$sayi;$i++)
   $faktoriyel*=$i;
echo "$sayi!=$faktoriyel";
?>


Örnek: Tanımlı olan sayının tam bölenlerini bir diziye atayıp ekrana yazalım.

Kod:
<?php
$sayi=120;
for($i=2;$i<=$sayi/2;$i++)
   if ($sayi%$i==0)
      $bolenler[]=$i;
 
echo "<u>$sayi sayısının tam bölenleri:</u><br>";
for ($i=0;@$bolenler[$i];$i++)
   echo $bolenler[$i],"<br>";
?>


Örnek: Ekrana küçükten büyüğe doğru tanımlı olan metni yazdıralım.

Kod:
<?php
$mesaj="ilim ilim bilmektir ilim kendin bilmektir";
for ($i=1;$i<=7;$i++)
   echo "<font size='$i'>$mesaj</font><br>";
?>
şimdi de yukarıdaki mesajın devamını azalan döngü ile ekrana yazdıralım.

Kod:
<?php
$mesaj="sen kendini bilmezsen ilim nice okumaktır";
for ($i=7;$i>=1;$i--)
   echo "<font size='$i'>$mesaj</font><br>";
?>
Burada koşula dikkat ediniz. Arttırma değil azaltma yapıldığına da dikkat ediniz.



Örnek: for döngüsü ile 5 satır 3 sütunlu bir tablo oluşturalım.

Kod:
<?php
echo "<table border='1' width='200px'>";
for ($i=1;$i<=5;$i++){
   echo "<tr>";
   echo "<td>&nbsp;</td>";
   echo "<td>&nbsp;</td>";
   echo "<td>&nbsp;</td>";
   echo "</tr>";
}
echo "</table>";
?>


Örnek: for döngüsü ile 10 satır 2 sütünlu bir tablo oluşturalım. Ancak satırların renklerini farklı gösterelim.

Kod:
<?php
echo "<table border='1' width='200px'>";
for ($i=1;$i<=10;$i++){
   echo "<tr bgcolor='",($i%2)?"#abda68":"#d0f896","'>";
   echo "<td>&nbsp;</td>";
   echo "<td>&nbsp;</td>";
   echo "</tr>";
}
echo "</table>";
?>


Örnek: 1'den 20'ye kadar olan sayıları ve karesini bir tablo içinde ekranda gösterelim.

Kod:
<?php
echo "<table border='1' width='200px'>";
echo "<tr>";
echo "<th>Sayı</th>";
echo "<th>Karesi</th>";
echo "</tr>";
for ($i=1;$i<=20;$i++){
   echo "<tr>";
   echo "<td>$i</td>";
   echo "<td>",$i*$i,"</td>";
   echo "</tr>";
}
echo "</table>";
?>


Örnek: Açılır listeye il plaka numaralarını dolduralım.

Kod:
<?php
echo "İl Seçiniz: <select name='iller'>";
for ($i=1;$i<=81;$i++){
   echo "<option value='$i'>$i</option>";
}
echo "</select>";
?>
Şimdi aynı örneği 10'dan küçük sayıların başına 0 koyarak yapalım.

Kod:
<?php
echo "İl Seçiniz: <select name='iller'>";
for ($i=1;$i<=81;$i++){
   echo "<option value='$i'>",($i<10)?"0".$i:$i,"</option>";
}
echo "</select>";
?>


Örnek: Tanımlı olan dizinin elemanlarını ekranda alt alta yazdıralım.

Kod:
<?php
$takim=array("Kaan","Gürkan","Abdullah","Emin","Burak");
for ($i=0;$i<=4;$i++)
   echo $i+1,") ",$takim[$i],"<br>";
?>


Örnek: 1 ile 100 arasındaki sayılardan 9'a tam bölünenleri bir diziye atayıp diziyi ekrana yazdıralım.

Kod:
<?php
for ($i=1;$i<=100;$i++)
   if($i%9==0)
      $sayilar[]=$i;
 
for ($i=0;@$sayilar[$i];$i++)
   echo $sayilar[$i]," ";
?>
Burada 9'a tam bölünebilen sayılar diziye katılmaktadır. İkinci döngüdeki @$sayilar[$i] koşulu; $i indisli bir dizi elemanı varsa anlamındadır. Eğer yoksa uyarı vermesin diye başına @ işareti koyduk.

Not: Bir komutun verdiği uyarıyı ekranda görmek istemiyorsanız o komutun başına @ işareti koymalısınız.



Örnek: Tanımlı olan dizinin elemanlarını açılır listeye ekleyelim.

Kod:
<?php
$aylar=array("Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık");
echo "<select name='aylar'>";
for ($i=0;$i<=11;$i++)
   echo "<option value='",$i+1,"'>",$aylar[$i],"</option>";
echo "</select>";
?>


Örnek: Tanımlı olan notlar dizisindeki zayıf ve iyi notların sayısını ekranda gösterelim.

Kod:
<?php
$notlar=array(64,52,32,96,15,77,81,25,78,55,65,40);
$zayif=0;
$iyi=0;
for ($i=0;@$notlar[$i];$i++){
   if ($notlar[$i]<45)
      $zayif++;
   else
      $iyi++;
}
echo "Zayıf not sayısı=$zayif <br> İyi not sayısı=$iyi";
?>
Size fikir vermesi açısından farklı bir çözümü de sizlerle paylaşalım.

Kod:
<?php
$notlar=array(64,52,32,96,15,77,81,25,78,55,65,40);
$zayif=0;
$iyi=0;
for ($i=0;@$notlar[$i];$i++){
   $zayif+=($notlar[$i]<45)?1:0;
   $iyi+=($notlar[$i]>=45)?1:0;
}
echo "Zayıf not sayısı=$zayif <br> İyi not sayısı=$iyi";
?>


Örnek: Şimdi de iç içe döngülere bir örnek verelim. Örneğimizde 10'a kadar olan sayıların çarpım tablosunu ekrana yazdıralım.


Kod:
<?php
for ($i=1;$i<=10;$i++){
   for ($j=0;$j<=10;$j++)
      echo "$i x $j = ",$i*$j,"<br>";
   echo "<br>";
}
?>


Örnek: Tanımlı olan notlar dizisindeki en büyük notu bulalım.

Kod:
<?php
$notlar=array(64,52,32,96,15,77,81,25,78,55,65,40);
$enbuyuk=0;
for ($i=0;@$notlar[$i];$i++)
   $enbuyuk=($notlar[$i]>$enbuyuk)?$notlar[$i]:$enbuyuk;
echo "En büyük not=$enbuyuk";
?>


Örnek: Tanımlı olan notlar dizisindeki notları grafik olarak ekranda gösterelim. Bunun için dosyamınızın kayıtlı olduğu yerde cubuk.png resminin olduğunu kabul edelim.

Kod:
<?php
$notlar=array(64,52,32,96,15,77,81,25,78,55,65,40);
for ($i=0;@$notlar[$i];$i++)
   echo "<img src='cubuk.png' width='20' height='",2*$notlar[$i],"'> ";
?>
Şimdi aynı grafiği tablo içinde gösterelim. Bu kez notları da altına yazalım

Kod:
<?php
$notlar=array(64,52,32,96,15,77,81,25,78,55,65,40);
echo "<table border='0'>";
 
echo "<tr>";
for ($i=0;@$notlar[$i];$i++)
   echo "<td valign='bottom'><img src='cubuk.png' width='20' height='",2*$notlar[$i],"'></td>";
echo "</tr>";
 
echo "<tr>";
for ($i=0;@$notlar[$i];$i++)
   echo "<td>",$notlar[$i],"</td>";
echo "</tr>";
 
echo "</table>"; 
?>


Örnek: Bir dizideki notları küçükten büyüğe doğru sıralayalım.

Kod:
<?php
$notlar=array(64,52,32,96,15,77,81,25,78,55,65,40);
$degisiklik=true;
for(;$degisiklik;){
   $degisiklik=false;
   for ($i=1;@$notlar[$i];$i++){
      if ($notlar[$i]<$notlar[$i-1]){
         $gecici=$notlar[$i-1];
         $notlar[$i-1]=$notlar[$i];
         $notlar[$i]=$gecici;
         $degisiklik=true;
      }
   }
}
 
for ($i=0;@$notlar[$i];$i++)
   echo $notlar[$i]," ";
?>

Kaynak : phpdefteri.com
 
Geri