Programın çalışması esnasında birkaç farklı alternatif durum arasından seçim yapmamız, bazı komutları birden fazla tekrarlamamız, mantıksal kararlar vermemiz ya da istenmeyen hataları önlemek amacıyla programımıza müdahale etmemiz gerekebilir.Bu gibi durumları kontrol altına almak amacıyla kontrol yapılarını ve döngüleri kullanıyoruz.
IF
if (yapılmasını istediğimiz koşul){
Yapılmasını istediğimiz koşulun doğru olduğunda işlenecek kodlar
}
IF
if (yapılmasını istediğimiz koşul){
Yapılmasını istediğimiz koşulun doğru olduğunda işlenecek kodlar
}
Yapılmasını
istediğimiz koşul mantıksal değeri üzerinden değerlendirilir. Sonuç TRUE ise, PHP deyimi çalıştırır, FALSE ise gözardı eder.
Hangi ifadeler FALSE olur ?
- · İnteger 0 (sıfır)
- · Float 0.0 (sıfır)
- · Boş string ve string “0”
- · Hiç elemanı olmayan dizi
- · Hiç üye değeşkeni olmayan nesne
- · NULL türü
Örnek: Saat 20’den az ise gerçekleşir.
Sonuç:
Örnek: Üye ismi boş olup olmadığını kontrol
ediyor.
Sonuç:
Örnek: Sayının 2’ye bölümünden kalan 1 ise
ekrana Sayı=8 yazar.
Sonuç:
Sayı=8
Bir şeye
dikkat edecek olursak parantezler kullanılmadığından if altında sadece $sayi++;
komutu çalışmaktadır. echo komutu her halükarda çalışacaktır.
ELSE
Çoğu zaman
belli bir koşul sağlandığında bir deyimin, o koşul sağlanmadığında başka bir
deyimin çalıştırılmasını isteyeceksiniz. Bunun için else kullanılmaktadır.
Else, bir if deyimini FALSE
döndürdüğü takdirde bir deyim çalıştırmak üzere genişletir.
İf (şart
ifadesi) {
şart
ifadesine bağlı yapılacaklar
}else {
şartlar
sağlanmazsa yapılacaklar
}
Yazım şekli
yukarıda olduğu gibidir. Öncelikle “if” diyerek parantez içerisinde şart
belirtilir, şart sağlanmazsa else kısmı çalışacaktır.
Örnek: Değişkenlere ilk değerleri verilip
karşılaştırıyor.
Sonuç:
Örnek: Aşağıdaki kod bloğu
çalıştırdığımızda, if koşullarının sağlandığı için ilk satır kodun çalıştığını
göreceğiz. Gördüğünüz gibi iki şartı, ‘ve’ anlamına gelen ‘&&’
ile birleştirdik. Şartımız $sayi
değişkenine atadığımız değer 90’dan ve 80’den büyük mü?
Büyük ise; Ekrana "$sayi koşullar göre her iki sayıdan büyüktür." yazsın.
Küçük ise; Ekrana "Koşullardan birisi veya ikisi de sağlanamamıştır." yazsın.
Sonuç:
Örnek: $sifre =1453 ve $uye= Seyma şartı
doğru ise “Doğru giriş yaptınız ” yanlış ise “Giriş Hatalı ” yazsın.
Sonuç:
Örnek: Tanımlı olan sayı pozitif ise
sayının kendisini ve karesini, değilse "Sayı pozitif değil." Mesajını
ekranda gösterelim.
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.
Sonuç:
Örnek: Ekranda true için 1, false için bir
şey görünmeyecektir.
Sonuç:
1
ELSEIF
elseif
isminden de anlaşılacağı gibi, if ve else deyimlerinin birleşmesi ile oluşur.
else gibi, orijinal if ifadesinin FALSE döndürdüğü durumda farklı bir deyimin
çalıştırılması için kullanılır. Ancak, else’ten farklı olarak, ilgili deyimi
sadece kendisine ait koşullu ifade TRUE değerini döndürdüğü takdirde
çalıştırılacaktır.
İf (koşul
veya koşullar){
Koşullar veya
koşullar doğru ise yapılacak işlemler.
}elseif(diğer
koşul veya koşullar){
Bu
koşulların doğru olması durumunda yapılacak işlemler
} else{
Yukarıdaki
koşulların hiçbirinin doğru olmaması halinde yapılacak işlemler.
}
Örnek:
Sonuç:
Örnek: Bu programda 3 ihtimal vardır. Seyma
büyük, Figen büyük ve yaşlar eşit. Birinci if deyimi ile Şeyma’nın büyük olma
durumunu 2.if deyimi ile Figen’in büyük olma durumunu sorguladık. İkisi de
değilse son ihtimal olan yaşların eşit olma durumunu yazdırdık.
Sonuç:
Örnek:
Sonuç:
Dört
Denetim yapıları için diğer sözdizimi
PHP bazı denetim yapıları için farklı bir sözdizimi sağlar.
Bu yapılar if ,while, for,foreach ve switch yapılarıdır. Her durumda, bu farklı
sözdiziminin basit şekli açılışta kullanılan kaşlı ayracın yerine iki nokta
imi(:) ve kapanışta kullanılan kaşlı ayraç yerine de sırasıyla endif;
endwhile;,endfor;,endforeach; ya da endswitch; deyimlerinden birini kullanmaktır.
Örnek: Aşağıdaki örnek if yapısında kullanımı gösterilmiştir.
Sonuç:
5
Elbette bu alternatif sözdizimi (syntax) sadece if için
geçerli değil. Aynı zamanda while,for,foreach,switch içinde geçerli. Bu yapı
için hepsinin kullanımı standarttır.
WHILE
while döngüsü PHP’de yer alan en basit döngü türüdür. C’deki
karşılığı ile aynı şekilde çalışır yani koşul sağlandığı müddetçe birtakım
işlerin yapılmasını sağlar. Bir while deyiminin basit kullanımı:
while(koşul){
koşul sağlanırsa çalışacak kodlar
}
While döngüsü şu mantıkla çalıyır:
- · Koşul ifadesi kontrol edilir.
- · Koşul sağlanıyorsa while bloğu içindeki işlemler yapılır.
- · Başa dönülür ve koşul kontrol edilir.
- · Koşul hala sağlanıyorsa blok içindeki kodlar çalıştırılır, koşul sağlanmıyorsa döngüden çıkılır.
Döngüden çıkabilmek için belli bir
noktadan sonra koşulun false değer
üretmesi gerekir. Aksi durumda sonsuz
döngü oluşur.
Örnek:
Bu örnekte koşul daima sağlanacağından while bloğu içindeki echo komutu daima çalışacak ve bir sonsuz döngü oluşacaktır.
Sonuç:
Örnek: Tanımlı
olan dizinin tüm değerlerini ekrana yazdıralım. While içindeki (@) işareti hata var ise görüntüleme demektir.
Örnek: Burada $sonuc değişkenini her döngüde
1 arttırarak çarptık. Yani ilk olarak 1*1 sonrasında 1*2, sonra… şeklinde sayı
10 ‘dan küçük olana kadar çarptık.
DO-WHİLE
do-while döngüsü, while döngüsüne çok
benzer; farkı, doğrulama ifadesinin her yinelemenin başında değil sonunda
değerlendiriliyor olmasıdır. while döngüsü ile temel farklılık, do-while
kullanıldığında ilk yinelemenin daima yapılıyor olmasıdır(ifadesinin
doğruluğuna yalnızca yinelemenin sonunda bakılır); halbuki while döngüsünde,
ifadenin doğruluğuna her yinelemenin öncesinde bakılmakta ve ifadenin sonucu
doğru değilse yineleme hiç başlatılmadan döngü sonlandırmaktadır.
do
{
döngü içerisinde yapılacak işlemler;
}
while(koşul);
Dikkat: do
while döngüsünde while döngüsünden farklı olarak while(koşul) satırından sonra noktalı virgül kullanıldığına dikkat
ediniz.
Şu mantıkla çalışır:
- · İlk seferde, herhangi bir koşula bakmaksızın do bloğundaki işlemler yapılır.
- · While deyiminin parantezlerindeki koşul kontrol edilir.
- · Koşul sağlanıyorsa do bloğu tekrar çalıştırılır, koşul sağlanmıyorsa döngüden çıkılır.
Örnek: Ekranda 1 kez ‘Merhaba Dünya’ yazar.
Yukarıdaki örnekte aslında while
yazdığımız koşul geçersiz.Yani $sayi değişkeni 5 den küçük değil ama do while
döngüsünde koşula bakılmadan önce 1 kere çalıştırıldığı için kod bir kez
çalışacaktır.
Sonuç:
Örnek: 1’den
10’a kadar sayıları ekrana yazdıralım.
Sonuç:
FOR DÖNGÜSÜ
Belirlediğimiz başlangıç şartından
koşul şartına kadar yazdığımız kodları çalıştırı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şkeni kullanmamızın amacı döngünün sınırlarını belirlemektir.
Kullanım Şekli:
for (başlangıç ; koşul ; artış
miktarı){
//döngü altında çalışacak komutlar
}
Başlangıç: Döngünün
en başında bir kereliğine koşulsuz olarak çalıştırılır.
Koşul: Her
yinelemenin başında Koşul ifadesi yeniden değerlendirilir. Bu ifadeden TRUE
sonucu elde edilirse, döngüye devam edilir ve döngünün etki alanındaki deyimler
çalıştırılır. Bu ifadeden FALSE sonucu elde edildiğinde etki alanındaki
deyimler çalıştırılmaksızın döngü sonlandırılır.
Artış miktarı:
Döngü değişkeninin kaçar kaçar artacağını belirtmek için kullanılır.
Sonuç:
Sonuç:
FOREACH
Foreach döngüsüne array döngüsü
diyebiliriz. Parametre olarak bir dizi alır, ve dizi içindeki eleman
sayısı kadar döner. Sadece bir dizi ve
foreach döngüsü ile güzel bir listeleme yapabiliriz. Kullanımı diğer döngülerden
farklı ama basittir.
Parametrede as deyiminden sonra
yazdığımız değişkene her döngüde sırasıyla bir eleman değerini yükler.
Kullanım şekli:
foreach($dizi as $eleman){
//dizinin tüm elemanlarının sayısı
kadar döner
}
Örnek:
Sonuç:
Dizide ne kadar eleman varsa hepsini sırasıyla
parametrede belirttiğimiz $meyve değişkenine atayarak döndürür.
Örnek: Yukarıdaki örnekteki $meyve’yi silip
deneyelim:
Sonuç: Aşağıdaki gibi hata mesajı
verecektir.
Örnek: Sırası gelen elemanın anahtarı $isim
değişkenine atanır.
Sonuç:
Örnek: Tanımlı olan dizideki sayıların
toplamını bulalım.
Toplam=44
|
BREAK
Break Türkçe anlamı kırmaktır. Yani
for ,foreach, while, do-while ve switch ibi döngüleri break ile istediğimiz yerde kırabiliriz.
Kullanım Şekli:
while(){
switch(){
case:
break;//switch
denetiminden çıkar
case:
break;
//hem switch hem de while denetiminden çıkar
}
}
Örnek: $a 4 değeri aldığında break
komutu sayesinde sonlanacak
Sonuç:
Örnek: Burada 100 kez dönecek olan bir for
döngüsü yaptık ve her döndüğünde ekrana sayıyı yazmasını istedi. Ama aynı
zamanda içine bir koşul daha koyduk, eğer sayi değişkeninin değeri 5 olur ise
break ifadesi çalışır.
Sonuç:
012345
012345
CONTINUE
Döngünün o anki iterasyonunun sonlanıp bir sonrakine
geçilmesini sağlar.
Örnek: $a’nın 3 olduğu yeri atla alt satırı
çalıştır.
Sonuç:
Örnek:
Burada iç içe iki while döngüsü var.Dıştaki döngü
çalıştığında ‘dış döngüdeyiz’ çıktılanır ve $a bir eksiltilir.İçteki
döngü çalışmaya başlar ve iç döngüdeyiz çıktılanır.continue 2 deyiminin
etkisiyle bir üstteki döngüye (yani dış döngüye) geçilir ve bundan
sonraki kısım işleme konmaz. Yani echo “burası
çalışır mı?” ifadesi hiçbir zaman işleme konmayacaktır. Bir önceki örnekte continue deyimi, for döngüsünde başa
dönmemizi sağlamıştı. Buradaki continue
2 ifadesi ise mevcut döngünün bir üstündeki döngünün başına dönmemizi
sağladı.
Sonuç:
Sonuç:
SWITCH
Bu değişkene bağlı koşullu işlem yaparken IF,ELSEIF.. şeklinde
uzunca bir komut kullanmak hem zamanımızı alır, hem php derleyiciyi yorar. Bu
gibi durumlarda Switch kodu işimizi kolaylaştırır.
Kullanım şekli:
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
}
Kullanılan değişkenin alabileceği durum değerlerini
istediğiniz kadar çoğaltabilirsiniz. durum’lar
içinde kullandığımız break şartın duruma uyması halinde diğer şartların
çalıştırılmadan switch-case
yapısından çıkmak için kullanılır. Son satırda yer alan default ifadesi ise değişken değeri hiç bir şarta uymuyorsa
çalıştırılacak olan komutları yazacağımız bölümdür.
Örnek: Sayının tek ya da çift olma durumu
Sonuç:
Sayı tektir.
|
Örnek:
Sonuç:
Örnek:
Sonuç:
DECLARE
declare yapısı bir kod bloğunun çalıştırılması esnasında
uygulanacak yönergeleri belirlemek için kullanılır. declare yapısının söz
dizimi diğer akış denetim yapılarının söz dizimi ile benzerdir.
declare (yönerge)
deyim
Yönerge bölümü, declare
bloğunun davranışını belirlemek için kullanılır. Şimdilik yalnızca iki yönerge
kullanılabilmektir. declare bloğunun
deyim bölümünün nasıl çalıştırılacağı ve çalışma esnasında yan etkilerinin ne
olacağı yönerge bölümünde belirtilen yönergeye bağlı olabilir. declare bloğu
kendinden sonra gelen tüm kodu etkilemesi için genel betik kapsamında da
kullanılabilir. Bununla birlikte, declare bloğu dahil edilen bir dosyanın
içindeyse ebeveyn dosya etkilenmez.
Kullanım şekli:
declare (thicks=1){
//betiğin tamamı
burada
}
Bir “tik”,declare bloğu çerisinde çözümleyici tarafından
çalıştırılan her (N) tiklenebilir deyimde bir ortaya çıkan bir oladır.(N)
değeri, declare bloğunun yönerge bölümünde ticks=(N) kullanılarak belirtilir.
Her deyim tik sayımına dahil edilebilir değildir.
Örnek:
Sonuç:
RETURN
Elde ettiğimiz sonuçları bir değişkene atayıp kullanırız. return()
komutu bir fonksiyon içerisinden aynı fonksiyon dışına veri göndermek için
kullanılan bir komuttur. Bazı durumlarda return bir değer gönderip bunu
döndürebilir, bazen de hiçbir değer döndürmeyebilir. Ulaşılmak istenen data,
değişik şekillerde karşımıza çıkabilektedir.
Return komutunun döndürdüğü değer bir işlemin sonucu
olabilir. Döndürülen data, direk olarak belirtmek istenen integer bir değer
olabilir. Ya da diğer bir fonksiyon ve parametresi olarak atanmış da olabilir.
Örnek:
Sonuç:
Örnek: İki sayının toplamını bir değişkene değer olarak atadık.
Sonuç:
Örnek: İki sayı arasında büyük olanı bulma
Sonuç:
REQUIRE
require ile dahil ettiğiniz dosya yüklenmezse yani
bulunamazsa php size error verir yani fatal error. Burada hata verdiği yerden
sonraki kodu çalıştırmaz yani programa sanki exit() demiş gibi olursunuz,
program oradan kesilir, durur. Yani siz php’de ye require ile yüklediğim dosya
hayatı öneme sahip, yükleyemezsin programın çalışmaya devam etmesinin bir
anlamı yok demiş oluruz.
include ile benzer özellikler gösteriyor. Fakat farklılıklar
da bulunuyor ki şöyle; eğer include() kullanırken bir hata oluşursa, hata
oluşan satırdan sonraki satırlar yine de çalıştırılacaktır. Fakat require()
kullanıyorsanız, require() satırından sonraki satırlar çalıştırılmaz. Peki
neden böyle bir şey var? Çünkü, örneğin veritabanı bağlantısı yapıyorsunuz
incude() kullandınız ve çağırdığınız dosyada hata var. Eğer veritabanını
çalıştırmazsanız sayfanızda büyük sorunlara yol açar hatta hiçbir sonuç çıkmaz.
Ama include() kullandığınız için sonraki kodlar çalıştırılır. Bunun yerine
require() kullanmak daha mantıklı olacaktır. Yine include() kullanmanın da
faydalı olacağı yerler vardır.
Örnek:
“isimler.php” adında dosyamız olsun. Bu dosya
içine akrabalarımın isimlerini saklıyorum.
Daha sonra “require.php”
adında dosya açıp baba ve annemin adlarını çağırıyoruz.
include içinde dosya adı yanlış yazdığımızda
aşağıdaki gibi hata mesajı verecektir.
Bu sayfadan gelmesi umduğunuz değişkenleri kullandık.
Zincirleme hataya sebep oldu. Bunun yerine require() kullanmış olsaydık, en
azından değişkenlerin hatasından kurtulurduk. Çünkü echo satırı işletilmezdi.
Doğrusunu yazacak olursak;
Sonuç:
INCLUDE
include fonksiyonu belirtilen dosyayı programa ekler. Eğer
dosyayı bulamazsa ekrana bir uyarı mesajı yazar.
Örnek:
Sonuç Hatalı:
Bu $renk ve $ meyve ‘nin tanımlı olmadığını
gösterir. Doğrusuna bakacak olursak;
Sonuç:
REQUIRE_ONCE
require için söylediklerimizin hepsi bunun için de geçerli
ancak bir üstünlüğü ya da farkı var diyebiliriz. Bu kodda da dosya bulunamazsa
kodun oradan sonrasını öldürür (çalıştırmaz) ve yaptığı diğer iş de yüklemeye
çalıştığın dosyayı önceden daha önce aynı sayfada yüklemiş misin? Daha önce
aynı dosyayı yüklediysen ikinci kez yüklemek istersen 10 defa yüklenmeye çalış
bir tane yükler o da ilk yüklendiğindir.
Örnek: İki defa yazdığımız halde dosyayı bir kez çağırır.
INCLUDE_ONCE
include_once fonksiyonu ise aynı isimli dosyadan 2 kere dahil
etmeyi önler.
Örnek: