Peki bunu anladık, ya işler biraz daha karışırsa ne olacak? Birden
çok koşul veya değere birden çok tanımlama gerekirse ne olacak? Bunun da cevabı çok zor değil.
PHP Kodu:
$a = 1; // örnek değişkenimizi tanımlayalım
$b = 2; // örnek değişkenimizi tanımlayalım
$c = 3; // örnek değişkenimizi tanımlayalım
if(($a == 1) || ($b == 1)) { // eğer $a veya $b 1'e eşitse, || ile veya sağladık
echo "Tamam."; // koşul sağlandı.
}
if(($a == 1) && ($b == 1)) { // eğer $a ve $b 1'e eşitse, && ile ve sağladık
echo "Tamam."; // koşul sağlanmadı($b eşit değildir 1), işlem yapılmayacak
}
if(($a == 1) && ($c != 5)) { // eğer $a 1'e eşitse ve $c 5'e eşit değilse
echo "Tamam."; // koşul sağlandı.
}
Örneklerden
de anlayacağınız gibi, eşitlik koşulunu belirtirken == kullanıyoruz,
eşit olmama koşulunu belirtirken ise != kullanıyoruz. Buna dikkat
edilmeli, if koşullarında çift eşittir işareti(eşitlik koşulu) veya
ünlemle birlikte eşittir işareti(eşit olmama koşulu) kullanılır.
Peki ya aynı değişkenin farklı değerleri için işlem yapmak gerekirse?
İşte bu noktada, işin içine "else if" komutu giriyor.
PHP Kodu:
if($a < 5) { //$a 5'den küçükse
echo "a, 5'den küçük.";
} else if(($a >=5) && ($a < 10)) { //$a 5'den büyük ya da 5'e eşitse ve 10'dan küçükse
echo "a, 5'den büyük ya da 5'e eşit ve 10'dan küçük.";
} else { //eğer $a, yukarıdaki koşullara uymuyorsa, yani bu örneğe göre 10'dan büyükse
echo "a, 10'dan büyük";
}
Burada
dikkat edilmesi gereken şey şu, else if kullandığınızda döngünüzü else
ile bitirmelisiniz, yani hiçbir koşul sağlanmadığında ne olacağını da
belirtmelisiniz.
Not: İlk makalemde değişken
tanımlamaktan bahsetmiştim. Eğer okuduysanız hatırlayacağınız gibi
sayılar için tırnak kullanmıyoruz. Eğer sayı değil de metin eşitliği
yapıyorsanız tırnak kullanmalısınız. Örnek tanımlama:
PHP Kodu:
if($a == "cihan") {
echo "cihan.";
}
İşinize yarayabilecek 2 kod:
PHP Kodu:
if(isset($_GET['id'])) { //eğer url'de id varsa, örneğin index.php?id veya index.php?id=2
echo "tanımlanmış";
}
if(!isset($_GET['id'])) { //eğer url'de id yoksa
echo "tanımlanmamış";
}
if(is_numeric($a)) { //eğer $a değeri sayısal bir değerse
echo "sayısal";
}
if(!is_numeric($a)) { //eğer $a değeri sayısal bir değer değilse
echo "sayısal değil";
}
| |
yorumları okumak veya yorum yazmak için tıklayın..
En önemli şey, kesinlikle ama kesinlikle, globals kullanmayın. Sadece session kullanın. Çünkü globals de yapabileceğiniz ufacık bir hata ile sadece sizin siteniz de değil, bütün sunucuyu tehdit altına atarsınız.
Sayfada sessionlarla çalışılacaksa, ilk olarak, sayfanın en üstlerinde bir yer olması daha iyi olur,
PHP Kodu:
session_start();
kodunu
ekliyoruz. Bu kod eklenmediği sürece, sayfada hiçbir şekilde session
çalıştıramazsınız. Yani yazdığınız kod çalışmıyorsa ilk önce bunu
ekleyip eklemediğinizi kontrol edin, bilmemkaç saat kodlarda hata
aramayın(başıma gelmişti

). Bu kodu ekledikten sonra, sayfada sessionlarla çalışabiliriz.
Burada PHP standartlarına göre dikkat etmemiz gereken şey şu.
session_register() veya
HTTP_SESSION_VARSkullanacağımıza, session tanımlarken ve bunlarla işlem yaparken, $_SESSION[] kullanmak daha sağlıklı.
PHP Kodu:
$_SESSION['uyeadi'] = "Bartuc"; // tanımladık
$uyeninadi = $_SESSION['uyeadi']; // kullandık
session'u bitirmek için ise, unset() kullanabiliriz veya boş bir değer verebiliriz, farketmez, hangisi kolayınıza gelirse.
PHP Kodu:
unset($_SESSION['uyeadi']); // session'u siler
$_SESSION['uyeadi'] = ""; // sessiona boş bir değer verir
Burada
belirttiğim şey PHP standartlarında olduğu için, localhostta çalıştı
sunucuda çalışmadı ya da tersi durumları bu kodlarla yaşamazsınız.
| |
yorumları okumak veya yorum yazmak için tıklayın..
PHP Kodu:
$degisken = 556456;
gibi.
Harf ya da bir metin tanımlarken, tırnaklar kullanırız, açılış/kapanış
tırnağının aynısı tanımladığımız metnin içinde geçiyorsa önüne \
koyarız. Peki, " ya da ' kullanılabiliyorken, hangisini nerede
kullanmalıyız?
PHP Kodu:
$bartuc = 'cihan';
$degisken = 'sadasd dasdasdas $bartuc';
şeklinde kullandığımızda ve bunu echo yaptırdığımızda, sayfaya aynen
sadasd dasdasdas $bartuc şeklinde basılır. Fakat;
PHP Kodu:
$bartuc = 'cihan';
$degisken = "sadasd dasdasdas $bartuc";
kullandığımızda, sayfaya basılan şey aynen
sadasd dasdasdas cihan
olacaktır. Yani, ' kullanıldığında içindeki değişkenler değişken olarak
algılanmaz ve sayfaya aynen basılır, " kullanıldığında ise değişkenler
okunur.
Eğer;
PHP Kodu:
$bartuc = 'cihan';
$degisken = "sadasd dasdasdas \$bartuc";
şeklinde,
çifttırnak içinde $ değişken tanımlama karakterimizi \ ile birlikte
kullanırsak, tek tırnaktan farkı kalmayacak ve değişkeni algılamadan
basacaktır.
Peki, çift tırnak içinde değişken kullanmak sağlıklı mıdır? Çalışacak da olsa,
sağlıklı değildir. Kullanılması gereken en sağlıklı format, yazdığımız metinler ile değişkenleri birbirinden . karakteri ile ayırmaktır. yani;
PHP Kodu:
$degisken = "sadasd dasdasdas $bartuc";
ve;
PHP Kodu:
$degisken = "sadasd dasdasdas ".$bartuc; //ya da
$degisken2 = "sadasd dasdasdas ".$bartuc." sadasdsa dasdasd ".$bartuc2." dasdasd";
aynı
işi göreceklerdir ama, alttaki kullanım biçimi daha sağlıklıdır, olması
gereken budur. Peki çok karışık bir kod yazıyorsanız ve bütün
değişkenleri tek tek böyle ayırmak istemiyorsanız veya ayırarak bir
sonuca varamıyorsanız ne yapacaksınız? sprintf() fonksiyonu burada
yardımımıza yetişiyor. Basit bir örnekle bu fonksiyonun kullanımını
anlatacağım.
PHP Kodu:
$tanim1 = "kere";
$tanim2 = "dört";
$tanim3 = "beş";
$degisken = "iki $tanim1 iki $tanim2 eder. üç ya da $tanim3 değil.";
yerine;
PHP Kodu:
$tanim1 = "kere";
$tanim2 = "dört";
$tanim3 = "beş";
$degisken = sprintf("iki %s iki %s eder. üç ya da %s değil.", $tanim1, $tanim2, $tanim3);
kullanmak daha sağlıklı olacaktır. Peki burada tam olarak ne yaptık?
sprintf fonksiyonunda ilk parametre, tanımlanacak olan metindir. bu
metinin içindeki değişkenleri %s karakteri ile değiştiririz.
tırnağımızı kapatıp virgülümüzü koyduktan sonra, yani ilk parametreyi
bitirdikten sonra, sırasıyla yerleştirdiğimiz %s'lerin yerlerine hangi
değişkenler gelecekse ayrı parametreler halinde ekleyerek parantezimizi
kapatıp fonksiyonu sonlandırırız.
Tanımladığımız bir
değişkeni sayfaya bastırırken de aynı kurallar geçerlidir. Unutulmamalı
ki, hiçbir değişken, doğrudan sayfaya kod halinde basılmayacağı sürece,
tırnak içinde kullanılmamalıdır. ve;
aynı işi yapsalar da, kullanmak için alttaki seçilmelidir.
Değişken tanımlamada aklıma gelenler şimdilik bunlar, daha aklıma
gelirse bu konuya eklerim. Daha sonra vakit bulduğumda ise
session'lardan bahsedicem.
| |
yorumları okumak veya yorum yazmak için tıklayın..