PHP yorumlayıcısı, bu “programı” çalıştırabilmek için dosyanın içinde PHP komutlarını arar. PHP komutları birinci bölümde gördüğümüz gibi iki şekilde yazılabilir:
1. <?PHP …. ?>
<CENTER>

<B>

<H1>
<?PHP

/*
Bu satır da PHP’nin çok-satırlı yorum bölümü..Bunu da PHP yorumcusu asla dikkate almaz Buraya istediğimiz kadar yorum yazabiliriz.

*/

            print “Merhaba Dünya!”;

// Bu ise PHP’nin tek satırlı yorum bölümü

# Bu satırları da PHP yorumcusu dikkate almayacaktır.

?>

</H1>

</B>

</CENTER>

</BODY>

</HTML>
Değişkenler

PHP’de de, bir çok başka bilgisayar programlama dilinde olduğu gibi değişkenlerin içine bir değer konmadan önce tanımlanması mümkündür; fakat gerekli değildir. Değişkenleri adının önüne $ işareti koyarak tanımlarız:

$adi;

$soyadi;

$123;

$sevdigiRenk
;

PHP’de genellikle değişkenleri değerini atayarak belirleriz:



$adi = “Reşit”;

$soyadi = “Gülen”;

$123 = 123;

$sevdigiRenk = “yeşil”;
Değişkenler, kullanıldıkları işleme, taşıdıkları değeri verirler:



print $adi;



PHP’de özel bir değişkene değişken adı olarak kullanılacak değerleri de atayabiliriz:

$adi = “Reşit”;

$degisken = “adi”;

print $$degisken;

Burada Browser penceresine yine “Reşit” kelimesi yazılacaktır; çünkü PHP $degisken adlı değişkenin “adi” adlı değişkeni tuttuğunu bilecek ve iki Dolar işaretini görünce, $degisken’in değerini değil, onun tuttuğu değişkenin değerini yazacaktır.
Veri Türleri
PHP açısından dünyada altı tür değer vardır:

Tamsayı (Integer): 5,124, 9834 gibi
Çift (Double): 3,567 gibi
Alfanümerik (String): “Reşit” gibi
Mantıksal (Boolean): doğru (true)/yanlış (false) gibi
Nesne (Object)
Dizi (Array)

Tür Değiştirme

Bir değişkenin değerinin türü hakkında kuşkunuz varsa, en emin yol bunu PHP’nin kendisine sormaktır. Bu sorgulamayı gettype() fonksiyonu ile yaparız.
Şimdi, bir PHP programı yazalım, bir takım değişkenlere değerler atayalım ve bunların türlerini PHP’ye soralım.


            $sayi  = 5;

            print(”Birinci değişkenin adı: \$sayi<br>”);

            print(”Değeri : “);

            print “$sayi<br>”;

            print(”Türü : “);

            print gettype( $sayi ) ; //tamsayi/integer

            print “<br>”;

            print “<br>”;

 

            $alfanumerik  = “Reşit”;

            print “İkinci değişkenin adı: \$alfanumerik<br>”;

            print “Değeri : “;

            print “$alfanumerik<br>”;

            print(”Türü : “);

            print gettype( $alfanumerik ) ; //alfanümerik/string

            print “<br>”;

            print “<br>”;

 

            $ondalik  = 5.1234;

            print “Üçüncü değişkenin adı: \$ondalik<br>”;

            print “Değeri : “;

            print “$ondalik<br>”;

            print(”Türü : “);

            print gettype( $ondalik ) ; //çift,ondalık/double

            print “<br>”;

            print “<br>”;

 

            $mantiksal  = true;

            print “Üçüncü değişkenin adı: \$mantiksal<br>”;

            print “Değeri : “;

            print “$mantiksal<br>”;

            print(”Türü : “);

            print gettype( $mantiksal ) ; //mantıksal/boolean

            print “<br>”;

            print “<br>”;


Burada mantıksal (boolean) değer olarak doğru anlamına true değeri atadığımız halde, PHP’nin bu değişkenin değeri olarak 1′i gösterdiğine dikkat edin. PHP’de bir fonksiyon, elde ettiği değer doğru ise sonuç olarak 1 değerini verir. (Yanlış/false değerinin neye çevrildiğini bulabilir misiniz?)

Escape

şu satırdaki, ters-bölü işareti dikkatinizden kaçmamış olmalı:
print “İkinci değişkenin adı: \$alfanumerik<br>”;

PHP için özel anlamı olan işaretlerin anlamlandırılmasını önlemek ve bu işaretleri düz metin saymasını sağlamak için bu işaretlerin önüne ters-bölü işareti koyarız.

şöyledir:



\’          Tek tırnak

\”          Çift tırnak

\\          Ters-bölü

\$         Dolar işareti

\n         Yeni Satır (New Line)

\r          Satır Başı (Return)

\t          Sekme (Tab) karakteri

Kimi zaman bir değişkene atadığımız değerin türünü değiştirmek gerekir. Bunu settype() fonksiyonu ile yaparız.

$degisken  = 5.67890;

            print(”Değişkenin  değeri : “);

            print “$degisken<br>”;

            print(”Türü : “);

            print gettype( $degisken ) ; //çift,ondalık/double

            print “<br>”;

            print “<br>”;

 

            print “İlk değiştirme işlemi: Alfanümerik/String:<br>”;

            settype( $degisken, string ); //alfanümerik/string (integer,double,booleon)

            print “Değeri : “;

            print “$degisken<br>”;

            print(”Türü : “);

            print gettype( $degisken ) ; //alfanümerik/string

            print “<br>”;

            print “<br>”;
Dört yararlı fonksiyon

isset() ve unset()



isset() fnksiyonu, PHP’nin bir değişkenin içinde değer bulunup bulunmadığını sınamasını sağlar. unset() ise varolan bir değişkeni yok eder.



if (isset($bir_degisken)) {

print( $bir_degisken );

}

else {

unset($bir_degisken);

}


Bu kod parçası, $bir_degisken isimli dğişkenin içi boş değişse, içeriğini görüntüleyecek, içi boş ise varlığına son verecektir.

empty()



isset() fonksiyonun tersi işleve sahiptir; bir değişkene değer atanmamışsa, veya değeri sıfır veya boş alfanümerik (null string) ise, doğru (True) değeri verir.

$bir_degisken = 123;

echo empty($bir_degisken);

$bir_degisken = “”;

echo empty($bir_degisken);


is_string(),is_integer(),is_double(),

Sınadıkları değişkenin aradıkları türden değer içermesi halinde doğru ‘True) sonuç verirler.



<?php

            $a = 6.567;

if (is_double($a)) {

            print (”A Double’dır<br>”);

            }

            $b = “Reşit”;

if (is_double($a)) {

            print (”B String’dir<br>”);

            }

            $c = 6;

if (is_int($c)) {

            print (”C Integer’dır<br>”);

            }

?>
Bu kod, Browser penceresine “A double’dır, B String’dir, C Integer’dır” yazdıracaktır. PHP’de bu fonksiyonlara benzeyen fakat başka tür değer arayan şu fonksiyonlar da vardır: is_array(), is_object.



İşlemciler (Operatörler)



Aritmetik işlemciler:



+              Toplama                  6+5      =   11

-               Çıkartma                 6-5      =     1

/                Bölme                     6/5       =  1.2

*               Çarpma                   6*5      =   30

%             Kalan (Modulus)     6%5     =     1

 

$sayi=4.5;

echo floor($sayi);           =>> 4 (Sayıyı aşağıya yuvarlar)
echo ceil($sayi);             =>> 5 (Sayıyı yukarıya yuvarlar)
echo round($sayi);          =>> 5 (Sayıyı yuvarlar)
echo max(13,12,5,7);      =>> 13
echo min(13,12,5,7);       =>> 5


Rastgele Sayı

 Srand((double) microtime()*1000000);

echo rand(20,30)         =>> (20-30 arası sayı döndürür)

PHP’nin atama işlemcisinin eşittir (=) işareti olduğunu hatırlıyorsunuz birleşik-atama (combined-assignment) işlemcileri, bu işarete diğer aritmetik işlemciler eklenerek oluşturulur.


İşlemci                      Örnek                           Anlamı

+=                             $a += 5                          $a = $a + 5

-=                              $a -= 5                           $a = $a - 5

/=                              $a /=5                            $a = $a / 5

*=                             $a *= 5                          $a = $a * 5

%=                            $a %= 5                         $a = $a % 5

.=                              $a .= “metin”                  $a = $a” metin”




Bir Arttırmak veya Azaltmak için



Değerleri sadece 1 arttırmak veya azaltmak için PHP, bir kolaylık sağlar:



$a++  veya ++$a              : $a’nın değerini 1 arttırır;

$a–    veya –$a               : $a’nın değerini 1 eksiltir.


PHP’nin karşılaştırma yapması için kullandığımız işlemciler ise işlem işaretinin sağı ve solundaki değerleri veya değişkenlerin değerlerini işaretin belirttiği karşılaştırmayı yaptıktan sonra ortaya ya doğru (true) ya da yanlış (false) sonucunu çıkartırlar.

İşlemci     Örnek             Örnek        $a=6 ise:

==            eşitse                $a == 5       Yanlış/False

!=             eşit değilse        $a != 5        Doğru/True

===          aynı ise             $a === 5    Yanlış/False

>              büyükse           $a > 5         Doğuru/True

<              küçükse           $a < 5         Yanlış/False

<=            küçükse           $a <= 5       Yanlış/False

                 veya eşitse              

>=            büyükse           $a >= 5       Doğru/True

                 veya eşitse
PHP’de bu karşılaştırmayı iki grubun arasına koyduğumuz işaretlerle yaparız İşaretin sağ ve sol tarafının doğruluğu veya yanlışığı işarete göre nihai sonucun doğru veya yanlış olmasını sağlar. Bu karşılaştırmaları yaparken şu işlemcileri kullanırız:



İşlemci Adı Anlamı Örnek



|| veya sol veya sağ doğru doğru || yanlış = doğru

or veya sol veya sağ doğru doğru || yanlış = doğru

&& ve sol ve sağ doğru doğru || yanlış = yanlış

and ve sol ve sağ doğru doğru || yanlış = yanlış

Xor Şartlı-veya Sadece sol veya sağ doğru doğru || yanlış = doğru

! Değil sol veya sağ yanlış doğru || yanlış = doğru




<?php

            $vize = 45;

            $final = 65;

            if ($vize >= 50 && $final >= 50) {

            print (”Öğrenci geçti!”);

            }

            else {

            print (”Öğrenci kaldı!”);

            }

?>


Sabit Değerler



define (”SABIT_DEGER”, değer);
Burada SABIT_DEGER yerine, tanımlamak istediğimiz sabit değere vereceğimiz isim, değer yerine de sabit değeri yazarız. Örnek:



<?php

            $Dolar_miktar = 125;

            define ( “DOLAR_KURU”, 625675);

            $TL_Tutar = $Dolar_miktar * DOLAR_KURU;

            print ($TL_Tutar);

?>
Tanımlanmış olan bir sabiti yeniden oluşturamayız; ama buna teşebbüs ettiğimizde PHP hata vermez. Bir sabit değerin oluşturulmuş olup olmadığını defined() fonksiyonu ile anlayabiliriz:



<?php

            $Dolar_miktar = 125;

            if (defined( “DOLAR_KURU” )) {

            echo (”Sabit değer daha önce tanımlanmıştı.<br>”);

            }

?>




Dizi-Değişkenler


Dizi değişkenden ayrıntılı söz edebilmek için önce tipik bir dizi-değişkende neler olduğuna bakalım. Sözgelimi, verdiğiniz “PHP ile Programlama” kursundaki öğrencilerinizin listesi şöyle olabilir:



Dizi Değişken Oluşturalım
Şimdi, PHP bize öyle bir araç vermeli ki, biz bir kerede bu listenin tümünü, her bir ögesine sanki bir değişkenin değeri imiş gibi tek-tek, veya bir kaçına birden ulaşabilmeli ve arzu ettiğimiz zaman notları doldurabilmeliyiz. Öğrenciler de yapacağımız Web sitesine girerek, kendi notlarını görebilmeli ve notlarını inceleyebilmeli. PHP’nin bu amaçla sağladığı araç, çok-boyutlu dizi-değişken oluşturma aracıdır. Ve bu araçla yukarıdaki listeyi aynen şöyle yapabiliriz.




<?php

$ogrenciler = array (

array ( adi => “Özbay”, soyadi => “Altun”, sinav1 =>”", sinav2 =>”", not =>”"),

array ( adi => “Muharrem”, soyadi => “Taç”, sinav1 =>”", sinav2 =>”", not =>”"),

array ( adi => “Hasan”, soyadi => “Civelek”, sinav1 =>”", sinav2 =>”", not =>”"),

array ( adi => “Şahika”, soyadi => “Tabak”, sinav1 =>”", sinav2 =>”", not =>”"),

);

// Buraya başka kodlar girecek

print $ogrenciler[0][adi];

?>

Programdaki “print()” komutunu sadece dizi değişkeni doğru yazıp yazmadığımızı sınamak amacıyla yazdık; bu programı Browser’da açtığınızda yazdığınız ilk ismi Browser penceresinde görüyorsanız, dizi-değişkeni doğru şekilde oluşturdunuz demektir. Burada, array() komutnu yazarken, süslü parantez değil, normal parantez kullandığımıza ve herbir elemanın değerlerinin sonunda vrigül olduğuna dikkat edir. Bir diğer önemli nokta: endeks adları bir kelimeden fazla ise bunları tırnak içine alarak belirtmektir. Örneğin:



array ( adi => “Özbay”, soyadi => “Altun”, “Sinav 1 Notları” =>”", “Sinav 2 Notları” =>”", “Toplam Not Ortalamasi” =>”"),



Burada, daha öncekilere benzer bir şekilde adlandırılmış $ogrenciler değişkenin içeriğini array() komutu ile doldurduğumuzu görüyoruz. Array() ile böyle çok boyutlu ve içerdiği değerlerin her birinin bir “endeks adı” olan dizi-değişkene İlişkili Dizi (Associative array) de denir. Perl bilenler ise bu tür değişkenlere “Hash” dendiğini hatırlayacaklardır. İlişkili Dizi’lerin birinci satırı 0, ikinci satırı 1, üçüncü satırı 2.. diye numaralandırılır. Bu dizinin o satırındaki kaydın sıra endeksidir. Ayrıca burada “adi,” “soyadi,” “sinav1″ .. dizi değişkenin içindeki değerlerin endeks adıdır. Yani bu değerlere atıfta bulunurken, referans yaparken veya bu değerleriekullanmak amacıyla erişirken sıra endeksi ve endeks adıyla hitabederiz. Yukarıdaki sınama amaçlı print() komutuna bakarsanız, birinci öğrencinin ismini “[0][adi]” olarak çağırıyor.



Çok elemanlı ilişkili dizi oluşturmanın bir diğer yolu, yeri geldiğinde böyle bir dizi için yeni bir üye ilgili bilgileri eleman endeksi ve değerler için endeks adı belirterek şöyle bir kod yazmaktan ibarettir.



<?php

                        $ogrenciler[0][adi] = “Özbay”;

                        $ogrenciler[0][soyadi] = “Altun”;

                        $ogrenciler[0][sinav1] = “”;

                        $ogrenciler[0][sinav2] = “”;

                        $ogrenciler[0][not] = “”;

// Buraya Buraya başka kodlar girecek

                        print $ogrenciler[0][adi];

 

?>


Bir dizi değişkende kaç boyut olacaksa, o kadar içiçe array() ögesi oluşturabiliriz. Buna göre tek boyutlu bir dizi değişken sadece bir array() komutu ile ve sadece değerler verilerek oluşturulabilir. Diyelim ki yukarıdaki öğrenci listemiz sadece öğrencilerin isimlerinden oluşacak. Bu durumda $ogrenciler değişkenine ilişkin satırı şöyle yazabilirdik:



$ogrenciler = array (”Özbay”, “Muharrem”, “Hasan”, “Şahika”);


PHP, böyle tek boyutlu bir dizinin örneğin birinci elemanını, “$ogrenciler[0]” adıyla bilir. Böyle bir tek-boyutlu diziyi oluşturmak için PHP bize başka bir kolaylık da sağlar: array() komutunu kullanmadan, doğruca dizinin ögelerine değer vermemiz mümkündür. Yukarıdaki programın sadece PHP bölümünü şöyle değiştirerek kaydedin:



<?php

                        $ogrenciler[] = “Özbay”;

                        $ogrenciler[] = “Muharrem”;

                        $ogrenciler[] = “Hasan”;

                        $ogrenciler[] = “Şahika”;

// Buraya başka kodlar girecek

            print $ogrenciler[0];

?>


Böyle sırayla dizi değişken oluşturur veya oluşturulmuş bir dizi değişkene ek yaparken, değişkenin sıra numarasını yazmazsak, PHP bunları kendisi sıralar. Yukarıdaki kodun da Browser penceresine “Özbay” yazdırması gerekir. Mevcut tek-boyutlu bir dizi değişkene ek yaptığımızda, be yeni değerin dizinin en altına eklenmesini istiyorsak, sıra numarası yazmamıza gerek yoktur. Mevcut değerlerden birini değiştirmek istiyorsak, o değerin sıra numarasını yazmamız gerekir. Bunu denemek için yukarıdaki kodu şöyle değiştirilim



<?php

                        $ogrenciler[] = “Özbay”;

                        $ogrenciler[] = “Muharrem”;

                        $ogrenciler[] = “Hasan”;

                        $ogrenciler[] = “Şahika”;

// Buraya başka kodlar girecek

                        $ogrenciler[0] = “Emre”;

                        $ogrenciler[15] = “Özbay”;

 

            print (”Dizideki 1′nci isim: $ogrenciler[0] <br>”);

            print (”Dizideki 2′nci isim: $ogrenciler[1] <br>”);

            print (”Dizideki 3′ünci isim: $ogrenciler[2] <br>”);

            print (”Dizideki 4′üncü isim: $ogrenciler[3] <br>”);

            print (”Dizideki 5′inci isim: $ogrenciler[4] <br>”);

            print (”Dizideki 6′ncı isim: $ogrenciler[5] <br>”);

            print (”…………..<br>”);

            print (”Dizideki 15′nci isim: $ogrenciler[15] <br>”);

?>