Tweet

PHP | Sart Deyimleri(Coditions)

Yaptığımız web programında olasılıkları düşünerek bunları şart değimleri ile ifade ederiz. Web programımıza birazcık zeka yüklemeye benzetebiliriz . Programımız ne kadar olasılığı kaşılaya biliyorsa o kadar akıllıdır. Yani olasılık eşittir şart diye düşünürsek programımız ne kadar çok şartı hesap ediyorsa o kadar akıldır. &nbspEğer bilgisayarlar olaylar karşısın da şartları kendileri oluşturabilseydi. Sanıyorum yapay zeka bugün çok ilerilerde olabilirdi.[...]

İf Deyimi

Daima "bir şey öyle ise böyle, öyle değilse şöyledir demez miyiz? PHP programında if deyimi bunu sağlar. Kelime anlamı eğer olan if deyimi ile programımızı karar almaya zorlarız. Fakat programımız bizim kadar akıllı olamayacağı için if şartının doğru veya yanlış olması durumunda ne yapacağını da ona biz söyleriz. if deyimi şöyle yazılır
CODE:
<?if( şartlar ){
//şartlar doğru ise yapılacak işlere ilişkin komutlar
}
elseif (diğer şartlar) {
//diğer şartlar doğru ise yapılacak işlere ilişkin komutlar
}
else {

//diğer her durumda yapılacak işlere ilişkin komutlar
} ?>

PHP, if ifadesinin doğru olması halinde, ifadeye ait ilk süslü parantezin içindeki komut satırlarını yorumlar ; Bu şartlar doğru değilse, elseif deyimi ile ileri sürebileceğimiz diğer bir grup şartın doğru olup olmadığını sınayabiliriz. Bu şartlar yerine geliyorsa, PHP, elseif bölümündeki komut satırlarını yorumlar. Diğer her hangi bir durumda yorumlanmasını istediğimiz komutları else bölümünde belirtiriz. PHP, if deyimi doğru değilse, deyime ait süslü parantezin içindeki komut satırlarını yorumlamadan yoluna devam eder; varsa elseif deyiminin şartlarını sınar; elseif bölümü yok fakat else bölümü varsa bu bölümdeki komut satırlarını yorumlar. Deyimde else bölümü de yoksa, PHP yoluna if deyiminden sonraki ilk adımdan devam eder.
Bunu bir Örnekle açıklayacak olursak
CODE:
<?php
$ders = "Türkçe";
if ( $dersi == "Türkçe" ) {
echo ("Seçtiğiniz ders adı: Türkçe");
}
elseif ($dersi == "Matematik") {
echo ("Seçtiğiniz ders adı: Matematik!");
}
else {
echo ("Lütfen bir ders seçiniz!");
}?>


if deyimlerini birden fazla şartı sınayacak şekilde yazarız; bununla birlikte elseif ve else bölümleri olmadan da yazılabilir:
CODE:
<?php
if ( $sifre == "" ) {
echo ("Giriş yapmak için şifre yazmanız gerekir.<br>");
echo ("Lütfen şifreyi yazın! <br>")
}?>

Buradaki if deyimi $sifre değişkeninin boş alfanümerik olması halinde ziyaretçiyi uyarak ve görevi bitecektir. Ziyaretçi bir parola yazmışsa, daha sonraki komutlar bu parolanın doğru olup olmadığını sınayabiliriz.

Switch Deyimi
PHP'de program akışını yönlendirmekte kullandığımız bir diğer komut, switch deyimidir. Anahtar anlamına gelen switch deyimi, verilen bir değişkenin değerinin sıraladığımız şartlardan hangisine uygun olduğunu sınar ve o şarta ilişkin komutları yorumlar. PHP'de yorumlamayı bitirdikten sonra bitirdikten sonra switch deyiminin dışına çıkmasını sağlayan komutu vardır:

CODE:
<?switch ( değişken ) {
case ŞART-1 ;
Şart-1 doğru ise yapılacak işlere ilişkin komutlar
break;
case ŞART-2 ;
Şart-2 doğru ise yapılacak işlere ilişkin komutlar
break;
case ŞART-3 ;
Şart-3 doğru ise yapılacak işlere ilişkin komutlar
break;
case ŞART-4;
Şart-4 doğru ise yapılacak işlere ilişkin komutlar
break;
......................
......................
diğer her durumda yapılacak işlere ilişkin komutlar
}
?>

deyimini yazarken mutlaka break ifadesini kullanmamız gerekmez; switch deyiminin akışı break ile kesilmemişse, program ilk şart yerine gelmiş olsa bile diğer şartları da sınamaya devam eder ve en sondaki default deyimine ulaşarak (default'tan sonra noktalı virgül değil iki nokta üstüste işareti olduğuna dikkat edin), bu bölümdeki komutları icra eder. Ne var ki programcılık mantığına aykırı olabilir: bir değişkenin içeriği verdiğimiz şartlardan birini tutmuşsa, muhtemelen diğer şartları yerine getirmeyecek demektir. Bu durumda diğer şartların sınanması gereksiz e default işlerin icra edilmesi ise hata olur. Bu deyimi de bir örnekle görelim:
CODE:
<?switch ( $ders ) {
case "Türkçe";
echo ("Seçtiğiniz dersin adı: Türkçe <br>") ;
break;
case "Matematik" ;
echo ("Seçtiğiniz dersin adı: Matematik<br>") ;
break;
case "Fizik" ;
echo ("Seçtiğiniz dersin adı: Fizik<br>") ;
break;
case "Kimya" ;
echo ("Seçtiğiniz dersin adı: Kimya <br>") ;
break;
default:
echo ("Seçtiğiniz dersin adı bilinmiyor<br>") ;
} ?>

Programımız, bu kodu icra ederken,, $ders adlı değişkenin değerini, buradaki dört isimle karşılaştıracaktır. Dersin adı, "Türkçe" ise ilk durum gerçekleşmiş olacak; program Tarayıcı penceresine dersin adını yazacak ve ikinci adıma break ifadesine geçecektir. break, switch deyiminin sona ermesini sağlar; PHP yoluna, switch deyiminin kapanan süslü parantezinden sonra devam eder. Bu örnekte break ifadesi kullanılmamış olsaydı, PHP, diğer şartları da sınacak ve boşuna zaman kaybedecekti; daha da garibi, en sondaki default komutu da yorumlanacağı için programımız Tarayıcı penceresine hem seçilen dersin adını, hem de "Seçtiğiniz dersin adı bilinmiyor" yazacaktı. Bunu göz önünde tutarak, switch deyimini daima break ile birlikte yazmamız gerekir.

Switch için kısa yol

Kimi zaman uzun switch deyimi yazmamız gerekmeyebilir; bir değişkenin değerini sadece bir şarta uygunluk açısından sınamamız gerekir. Bunu soru ve iki nokta üst üste işaretleri (? ... :) olarak yazılan işlemci ile yaparız. Diyelim ki, Web sitemizi ziyaret eden kişinin parola yazıp yazmadığını sırlamak istiyoruz.
CODE:
<?php
$uyari = ($sifre == "" ) ? "Şifre yazmanız gerekir" : "Teşekkür ederiz" ;
echo ($uyari);
?>
Bu kod ziyaretçinin parola girip girmediğini $sifre değişkeninin içinin boş olup olmadığına bakarak anlayacak ve $sifre değişkenin içi boş ise (yani soru işaretinin sorguladığı durumun doğru olması halinde) iki nokta üst üste işaretinden önceki metni $uyarı değişkenin içeriği haline getirecek; $parola değişkeninin içi dolu ise (yani şart yerine gelmiyorsa, durum yanlış ise) iki nokta üst üste işaretinden sonraki metni $uyarı değişkeninin içeriği yapacaktır. Bir sonraki echo() komutu ise içeriği bu şart sonucuna göre belirlenen $uyarı değişkeninin değerini Tarayıcı penceresinde görüntüleyecektir.


Dia
okanatabag@gmail.com
20 Agustos 2005 17:01

İlgili Olabilecek Makaleler


Yorumlar (0)




Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg