PHP'ye başlangıç

Ubuntu Türkiye Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla
PHP logo.png

PHP (eski açılımı: Personal Home Page Türkçe: Kişisel anasayfa. PHP: Hypertext Preprocessor Türkçe: Üstün Yazı Önişlemcisi), sunucu taraflı bir betik dili ve programlama dilidir. PHP, ilk kez Rasmus Lerdorf tarafından, web sayfa ziyaret edenleri izlemek amacıyla bir dizi Perl betikleri kullanılarak geliştirilmişti. İnsanlar kısa zamanda bununla ilgilenmeye ve bu konuyla ilgili sorular sormaya başladıklarında, Rasmus kararını verdi ve bir betik (script) motoru oluşturdu. Ayrıca formlara da destek verdi ve böylece PHP/F1 'i biçimlendirmiş oldu. Adını duyurdukça bir grup yazılım geliştirmecinin dikkatini çekti ve böylece bir API oluşturuldu ve PHP3 ortaya çıktı. Daha sonraları yeniden ele alınması gerekti ve Zend motoru PHP4 'ü yaratmış oldu. Artık PHP önünde pek engel bulunmuyordu, böylece PHP daha ünlenmeye başladı. Günümüzde PHP, bloglardan forumlara, portal sistemlerinden veri tabanlarına, yapay sinir ağlarından düşünen sistemlere, sınıflardan fonksiyonlara her türlü işlevde kullanılır.

Vikipedi logo.png Bu yazılım hakkında ek bilgiler için Vikipedi'deki PHP maddesine bakabilirsiniz...

Avantajları

  1. PHP hemen hemen her platformda çalışabiliyor. PHP aynı kod temelini kullandığı için, UNIX, Windows (95/98/NT/2000) ve Mac OS dahil olmak üzere 25 platformda derlenip kurulabilir. Kodlar aynı olduğundan script'ler platformdan bağımsız olarak çalışacaktır.
  2. PHP, uzantı alabilmektedir. Uygulamanın içerisinde yer alan çekirdek motor (Zend tarafında yazıldı), bir dizi asal kod modüllerinden ve kod uzantılarından oluşmaktadır. Bu nedenle programcılara PHP uzantıları yaratarak bazı özel işlemlerini yapabilmeleri için iki seçenek sunuluyor; ya uzantı modüllerini yazarak uygulanabilen bir derleme yapmak, ya da PHP'nin dinamik yükleme mekanizmasıyla yüklenebilecek uygulanabilir uzatmalar yaratmak.
  3. PHP pek çok HTTP server arayüzü barındırıyor. PHP Apache'ye, AOL server'a, Roxen ve THTTPD'ye doğrudan yüklenebiliyor. Alternatif olarak CGI modülü olarak da kullanılabilir.
  4. PHP pek çok veritabanı arayüzü bulunduruyor. PHP, MySQL, MS SQL, Oracle, Informix, PostgreSQL ve diğerleriyle doğrudan çalışabiliyor. Bunlar ikili sayı düzenindeki arayüzlerden oluşmaktadır ve bu çözümler için veritabanının desteklenmediği yerlerde ODBC desteği sağlıyor.
  5. Bir PHP kullanıcısı herhangi bir kütüphane için arayüz oluşturmakta zorluk çekmez. Pek çok kullanıcı bu yolu seçmiş, grafik rutinleri, PDF dosyaları, Flash Movie'leri, Cybercash cetvelleri, XML, IMAP, POP ve diğerleriyle ilgili modüller bulabilmiştir.
  6. PEAR, PHP'nin uzantısı ve Add-on deposudur. Pear, Perl için geliştirilen CPAN'e benzemektedir. Halen başlangıç aşamasında olmasına rağmen PEAR, PHP'nin kurulumuyla birlikte gelecek bir dizi PHP script'ini kullanıma sunmaktadır.
  7. PHP bir açık kod uygulamasıdır ve pek çok profesyonel kullanıcı için çok şey ifade etmektedir. Basitçe açıklamaya çalışırsak PHP kullanıcıyı, çalışmayan uygulamalar için üretici firmanın keyfini beklemekten, her yıl sistemini belli paralar ödeyerek güncelleme zorunluluğundan kurtarmaktadır.

Eksik yönleri neler Hata denetimi Cold Fusion ya da ASP uıygulamasındaki kadar etkili değil. IDE ve debugger uygulaması bulunmuyor. IDE'nin pek çok kullanıcı için fazla bir önemi yok. Ancak debugger Zend tarafından yakın gelecekte geliştirilecek. PHP ve diğer script dillerini ne zaman kullanacaksınız Eğer bir UNIX ya da Linux platformu üzerinde iş görüyorsanız, Perl ve PHP, her ikisi de çalışmalarınız için ideal. Her ikisi de başlangıç aşamasında script yazmayı kolaylaştırıyor. Windows platformundaysa ASP ve Cold Fusion egemenliği bulunuyor. Aslında buradaki tercih teknik olmasından çok politik sayılır. ASP ile IIS mühtemelen PHP ile IIS'den daha iyi. Ancak tamamen teknik bir altyapıda PHP, WindowsNT üzerinde, diğer platformlardaki performansına ulaşmakta.

Teknik notlar

  • PHP uygulamaları bağımsız çalışabilecek derleyici yapısıyla değil, uyarlayıcı yapısıyla çalışır.
  • PHP yorumlayıcısı ilgili dosya içindeki betikleri çalıştırarak geriye döndürdüğü sonucu sunucuya tekrar gönderir.
  • Sunucuya ulaştırılan sonuç İstemci (Client) tarafına HTML dosya olarak yollanır. - PHP ile Sunucu/İstemci mantığında web tabanlı uygulama geliştirilebildiği gibi, UNIX kabuk programlama ve GTK ile de GUI' ye sahip tek başına çalışabilen uygulamalar geliştirmek mümkündür.

Veri tipleri

PHP veri tipleri içerir. PHP'deki kod yapısına göre her türlü veriyi sadece bir kez deklare etmek ile kodun her yerinde kullanabilirsiniz. Veri tipleri ana olarak 8 tanedir:

  1. Boolean: En basit türdür. Bir mantıksal ifadenin sonucu TRUE veya FALSE olan bir doğruluk değeridir. Örneğin 0, "FALSE", 0.0, "Elemansız Dize", "Boş", "NULL" FALSE(yanlış) verir.
  2. Integer (int): Tam sayılardır. - sonsuzluktan, + sonsuzluğa kadar olan her tam sayı yani ondalıksız sayı bir integerdir. Sayı oldukları için " ",' ',´ ´ içerisine konulmaları gerekmez. Örneğin -312, -1, 0, 4511, 2, 636626213 gibi...
  3. Float: Tüm Reel sayılar yani Gerçek Sayılar Float türüne mensuptur. - sonsuzluktan + sonsuzluğa kadar olan ondalık sayılar, rasyonel sayılar, irrasyonel sayıları içerir. Sayı oldukları için " ",' ', ´ ´ içine yazılmaları gerekmez. Örneğin -54233.3, -523.13125415, 0.0, 31.1, 4242.442, 2.222 gibidir.
  4. String (str): Tüm yazı cinslerini içerir. PHP'de string belirlerken mutlaka ama mutlaka " ", ' ', ´ ´ işaretlerinden herhangi birinin içine koymak gerekir. Örnek olarak "Merhaba", "Nasılsın?", 'PHP yazısıdır', ´Bu bir string´ gibidir.
  5. Array: Dizidir. Yani birden çok değer barındır. PHP'de değerleri belirtirken $ad ifadesini kullanırız. Buna göre $ad[1], $ad[2] gibi ifadeler olabilir.
  6. Object (obj): Nesnelerdir. Class yani sınıf yazarken nesne tabanlı kullanılır.
  7. Resource: Kaynak tipidir. Veri tabanından gelen bilgilerin değişken olmasından kaynaklı bu tip ile kaydedilir.
  8. NULL: Tanımsız, deklare edilmemiş, Yok, Belirsiz, Geçersiz ifadelerdir. Eğer bir değişken " ", ' ', ´ ´ ya da empty ise NULL değildir çünkü boş bir string olur. NULL ise hiç tanımlanmamış şeylerdir.

PHP kod yapısı

PHPCode_HelloWorld


1-Başlangıç

PHP, 21. yüzyılın ilerleyen dillerinden biridir. Kod yapısı tıpkı C, JavaScript ve Perl'e benzer. HTML gömülüdür yani HTML kodları içerisinde kullanılabilir.

1-PHP'ye başlangıç

PHP kodunu yazmaya başlamak için onu belirtmek zorundasınız. Yoksa PHP yorumlayıcıları PHP ile yazdığınızı anlamaz. Bunu:

   <?php

   ?>

Yazarak yapabilirsiniz. <?php PHP ile yazmayı başlatır, ?> ise bitirir. Artık bu kodu her türlü ama her türlü PHP kodunda görebilirsiniz. Eğer herhangi bir kod ?> dışında kalırsa o kod geçersiz sayılır ve PHP anlamaz.

2-Yorumlar

Yorumlar çok karışık kodları düzenler. Ama şunu unutmayın asla bir yorum çıktı yani görüntü vermez. Örnek:

  <?php
  // Bu bir PHP yorumudur!
  ?>

Burada herhangi bir çıktı yoktur. Çıktı, ekranda görülen, ifade, yazı, simge, işaret, sayı gibi görüntülerdir. Burada sadece bir yorum yazmış olursunuz. Eğer çok karışık bir kod yazarsanız, bu ifade ile yer belirtebilirsiniz. Bu yazımı hızlandırır ve kod anlaşırlığı sağlar.

2-Yazı Yazma

PHP'de yazı yazmak için bazı ifadeler kullanılır. Fakat en başta echo komutu, gösterim için kullanılır. Bunun dışında başka komutlar da vardır.

  <?php
  echo "İlk php örneğim."; 
  ?>

PHP basit bir "echo" komutu ile karşısındaki yazıyı gösterir ve, ; simgesi ile yapılan işi bitirir. Bu işaret çok önemlidir, eğer bundan sonra başka satır yazılırsa PHP, Parser Eror yani dil bilgisi yanlışı verir. Eğer buradaki gibi yazı (string) yazarsanız " " içine almanız gerekir; eğer sayı (integer) yazarsanız " " gerekmez. Buradaki örnek gibi:

  <?php
  echo 5; 
  ?>

Görüldüğü gibi PHP bir sayıyı direkt anlayarak " " ifadelerine ihtiyaç duymadı. Aynı şekilde değişken kullanırken de " " ihtiyacı yoktur.

3-Değişken Oluşturma

PHP her türlü değişkeni her an, her yerde kullanmak üzere yaratabilir, hatta onu özel komutlar ile değiştirebilir. Fakat PHP'de atama değer yoktur. Yani kodun her yerinde değişkenin ismini ve değerini oluşturabilir, bunu isterseniz değiştirebilirsiniz, fakat her kod için yeni atamalar yapmanız gerekmez. En kolay değişken yaratma metodu aşağıdaki örnek gibidir, burada değişkenin değeri Merhabalar:

  <?php
  $yazi = "Merhabalar"; //İşte burada değişken oluşuyor. Değişkenin adı $'dan sonra ve değer ='den sonra.
  echo $yazi . ", Bu benim ilk yazım";//Burada $yazi değerini " " içine almadık. İstersek alabiliriz.
  ?>

Çıktı:

   Merhabalar, Bu benim ilk yazım

Basit bir "echo" komutu ile çıkan yazı bu sefer tek başına değil. Burada önceden verdiğimiz yazi değeri de var. PHP'de değişken adının önüne "$" konularak değişken oluşturulabilir. Ayrıca bu değişkenin değeri Merhaba Yani $yazi yazdığınız her yerde bu yazı görülür. Unutmayın yazılar " " içine alınır. Değişkenin ismini verirken önemli olan, değişkenin Türkçe karakter içermemesi; ama değişken $deneme, $aabb, $1234deneme, $elma gibi şeyler olabilir. Başka bir örnek:

  <?php
  $sayi = 3;//Görüldüğü gibi sayı adlı değişken oluştu. 3'ü " " içine almak gerekmez.
  echo "PHP, $sayi adet harf içerir."; 
  ?>

Çıktı:

   PHP, 3 adet harf içerir.

Burada daha önceden belirlediğimiz $sayi değeri, 3 olarak belirlendik. Bir kod içerisinde her yerde $sayi yazarsak PHP onun 3 olduğunu anlar. Bunun yerine istenilen basamakta, istenilen sayı yazılır. Sayılar " " içine alınmaz. Bir önceki kodda değişkeni " " içine almamıştık ve . ile ayırmıştık. Burada ise " " içine aldık.

4- Operatörler

PHP'de her programlama gibi operatörler içerir. Asla bir kodu uzun uzun anlatamazsınız; çünkü dilin uyulması gereken kuralları vardır. Örneğin "ve", "ayrıca", "topla", "çıkar", "yanlış" gibi ifadeleri nasıl söyleyeceğiz? Tabii ki operatörler ile. Başlangıç için öğrenilmesi gereken çok önemli operatörle vardır.

1-Matematik Operatörleri

Operatör Tanım Örnek Sonuç
+ Toplama Operatörü
<?php echo 7 + 2; ?>
9
- Çıkarma Operatörü
<?php echo 9 - 4; ?>
5
* Çarpma Operatörü
<?php echo 3 * 5; ?>
15
/ Bölme Operatörü
<?php echo 5 / 5; ?>
1
% Kalan Operatörü (Bölüp kalan değeri döndürür)
<?php echo 9 % 2; ?>
1

Bunlar matematik operatörleri idi; fakat bunları deklare etmek için de kullanabiliriz. Önceki bölümde hep = ile değişken oluşturduk. Aşağıda atama operatörlerini bulabilirsiniz.

2-Atama operatörleri

Operatör Örnek Aynı Sonucu Verir
= x=y x=y
+= x+=y x=x+y
*= x*=y x=x*y
-= x-=y x=x-y
/= x/=y x=x/y
.= x.=y x=x.y

3-Karşılaştırma operatörleri

Aşağıdaki operatörler PHP'de en çok kullanılan operatörlerdir. Bunlara karşılaştırma operatörleri denir ve iki değeri karşılaştırır.IF ifadesi kodlama yapar iken bunlar çok önemli olur. Her biri PHP'deki veri tiplerini döndürür. Yani doğru (true) ya da yanlış (false) değer döndürürler. Aşağıadaki karşılaştırma operatörler örnekleri ile doğru (true) ve yanlış (false) döndürüyorlar.

Operatör Tanım Örnek Anlamı Değer
== Eşittir 5 == 8 5, 8'e eşittir Yanlış (false) olur
!= Eşit Değildir 5 != 8 5, 8'e eşit değildir Doğru (true) olur
> Büyüktür 5 > 8 5, 8'den büyüktür Yanlış (false) olur
< Küçüktür 5 < 8 5, 8'den küçüktür Doğru (true) olur
<> Büyüktür veya Küçüktür 5 <> 8 5, 8'den büyüktür veya küçüktür. Doğru (true) olur
<= Eşittir veya küçüktür 5 <= 8 5, 8'e eşittir veya küçüktür Doğru (true) olur
>= Eşittir veya büyüktür 5 >= 8 5, 8'e eşittir veya büyüktür Yanlış (false) olur

Bu operatörler dediğimiz gibi çok önemlidir. Bunlara, ileri seviye kodlarda çok ihtiyaç duyulur.

4-Mantıksal operatörler

Aşağıda mantıksal operatörler var, bunların hem sağı hem de solu doğru (true) ise doğru (true) döner değil ise yanlış (false) döner:

Operatör Tanım Örnek Anlamı Değer
&& Ve (5==20 && 10==10) 5 eşittir 20 ve 10 eşittir 10 Yanlış (false) olur
|| Veya (5==4 || 10==7) 5 eşittir 4 veya 10 eşittir 7 Yanlış (false) olur
! Değildir !(5==4) 5 eşittir 4, değildir Doğru (true) olur

6-Olasılık ve denetim ifadeleri

PHP, akışı bol olabilecek bir betik dilidir. Bu akışı denetlemek, filtrelemek, kontrol etmek, düzenlemek, değer kazandırmak ve denemek için bazı ifadeler kullanılır. Aynı zamanda bu ifadeler betiğe matematiksel bir olasılık kazandırır. Bu ifadeler kodlar içinde iç içe geçerek akışı denetlerler.

1-If, Elseif, Else

Php dili her dildeki gibi "if" deyimine sahiptir. Bu çok sade olarak bildiğimiz "eğer" demektir. Yani "eğer" bir şey olur ise, şunu yap ve şunu yapma ayrıca bu olur ise şunu yap ya da yapma demeye yarar. Aslında daha önceden bilinen "Boolean" veri tipleri için kullanılırç En basit örnek:

<?php
$x = 1;
$y = 2;
if ($x == $y) //Eğer bu TRUE(doğru) ise...
     echo "İki sayı birbirine eşittir.";//Bunu yap.
else //Eğer FALSE(yanlış) ise...
      echo "İki sayı birbirine eşit değildir.";//Bunu yap.
?>

Sorulan soruya PHP anında cevap verir:

İki sayı birbirine eşit değildir.

Burada PHP ye sorduk: "eğer" x ve y eşit ise "İki sayı birbirine eşit" de, ama eğer değil ise "İki sayı birbirine eşit değil." de. Yani demek oluyor ki "if", "eğer" demek bunu söyledikten sonra "else" diyerek eğer buna uymaz ise yapacağı şeyi söyleriz. Unutmayın PHP sadece eco'dan ibaret değildir. İleride "eğer" x, y'ye eşitse, bir işlem yap, "uymuyorsa" başka bir şey yap! PHP bunun için özellikle yapılmış bir dil. ÇOK ÖNEMLİ:Eğer yukarıdaki gibi tek iş veriyorsanız her bir if, elseif veya else'e { } ile kapatmamalısınız! Aşağıdaki örnek gibi olur ise kapatmalısınız!

<?php
$x = 1;
$y = 2;
if ($x == $y)
      {
      print "İki sayı birbirine eşittir.";
      echo " Yani:";
      echo $x . "ile" . $y . "eşit sayılardır";
      }
else
      {
      print "İki sayı birbirine eşit değildir.";
      echo " Yani:";
      echo $x . "ile" . $y . "eşit sayılar değildir.";
      }
?>

Çıktı:

İki sayı birbirine eşit değildir. Yani:
1 ile 2 eşit sayılar değildir.

Burada print komutu semboliktir. Yani bu komut yerine echo verilebilir. Kısaca print komutu "Bir yazıyı insanların görebileceği hale getirmektir."Şeklinde anlatılır. Aynı zamanda burada şuna dikkat edilmeli, if'e 1'den fazla görev verildiği için program { } içine alındı. Şimdi kısa bir elseif programı örneği:

<?php
$x = 1;
$y = 2;
if ($x == $y)
      echo "İki sayı birbirine eşittir.";
elseif ($x > $y)
      echo "$x büyüktür $y";
else
      echo "$x küçüktür $y";

?>

Çıktı:

1 küçüktür 2

Burada yaptılan şey aslında bir if daha eklemek; yani sisteme şunu sormak: Eğer, x eşitse y, "İki sayı birbirine eşit" yaz. Ayrıca Eğer x büyükse y, "x büyüktür y" yaz. Hiçbiri değilse, "x küçüktür y" yaz. Tabii bu sadece insanların anlayabileceği PHP ise eğer(if), ayrıca eğer(elseif) ve hiçbiri değilse(else) olarak algılıyor. Aynı şekilde çoklu sistemli bir if, elseif, else programı:


<?php
$x = 20;
$y = 10;
$z = 15;
if ($x == $y and $y == $z)
      {
      echo "$x, $y ve $z eşit sayılardır." . "<br />";
      print "Her sayı birbirine eşittir.";
      }
elseif ($x > $y and $z > $y)
      {
      echo "$x ve $z sayıları $y'den büyüktür" . "<br />";
      print "Her sayı birbirine eşit değildir.";
      }
elseif ($x and $y > $z)       {
      echo "$x ve $y sayıları $z'den büyüktür." . "<br />";
      print "Her sayı birbirine eşit değildir.";
      }
else
      {
      echo "$x, $y ve $z sayıları eşit değillerdir." . "<br />";
      print "Her sayı birbirine eşit değil.";
      }

?>

Çıktı ise şu şekilde çıkar:

20 ve 15 sayıları 10'den büyüktür
Her sayı birbirine eşit değildir.

Burada şu şekilde bir işle yapıldı. Önceden atanan 10, 15 ve 20 değerli x, y ve z bilinmeyenleri var. Bizde PHP'ye bazı sorular sorduk. Bunun cevabını PHP bize yazdı. Dikkat! Bir if'den sonra gelecek, ona bağlı ifler mutlaka elseif ile yazılmalıdır ve bu bağıntı else ile bitmelidir. Aksi taktirde, PHP hata vermez fakat program performans ve doğruluk bakımından sapar. Yani yanlış sonuçlar verebilir.

PHP aynı zamanda durum operatörünü (Ternary Operation) de destekler.

<?php
$a = 15;
$b = 9;
$c = 7;

  if(($a > $c) && $c > ($a - $b))
  {
     print("Hesaplama Başarılı Oldu.<br /> ");
  }
  else
  {
     print("Hesaplama Başarısız Oldu.<br /> ");
  }

?>

Çıktı:

Hesaplama Başarılı Oldu.

Yukarıdaki kod parçasının durum operatörü (Ternary Operation) ile yazılmış hali aşağıda görüldüğü şekildedir:

<?php
$a = 15;
$b = 9;
$c = 7;

($a > $c) && ($c > ($a - $b)) ? print("Hesaplama Başarılı Oldu. <br />") : print("Hesaplama Başarısız Oldu. <br />");

?>

Çıktı:

Hesaplama Başarılı Oldu.

IF karar kontrol mekanizmasına hiç bir karşılaştırma kriteri verilmese bile, kendisi boolean yani Doğru/Yanlış (true/false) şeklinde bir denetim gerçekleştirebilmektedir. Yukarıdaki işlemin sayılar üzerindeki çözümünü hesaplar ve IF karar kontrol mekanizmasının işleyişine göre yorumlarsak doğru (True) çıktığını ve bu nedenle ilk kod bloğunun çalıştırıldığını görebilirsiniz.

&&(AND) -> Bitsel karşılaştırma operatörlerindendir. VE(AND) anlamına gelir. Sağında ve solundaki iki tarafında doğru(True) dönmesi sonucu karar kontrol mekanizmasına doğru(True) döner. Aksi taktirde her koşulda yanlış (False) dönmektedir.

Şimdi işlemimizin sayısal ifade edilişi ile inceleyelim.

(15 > 7) AND (7 > (15 - 9))

İlk sol taraftaki işlemi yapalım ve sonucu işleme ekleyerek tekrar inceleyelim. (15 > 7) ifadesi ile 15'in 7'den büyük olup olmadığı sorgulanmaktadır.

15, 7'den küçük olmadığından karar kontrol mekanizmasının ilk bölümü doğru(True) dönecektir.

Sağ tarafta ise önce (15 - 9) ve arından çıkan sayının 7'den büyük olup olmadığı karşılaştırılmasıdır. Burada gittiğim işlem sırası matemateki işlem sırası ile bire bir aynıdır. PHP yorumlayıcısı da bu kurallara uymaktadır.

15 - 9 = 6'dır. 7, 6'dan büyük olduğundan bu karşılaştırmada doğru(True) dönecektir.

Daha önce belirtildiği üzere AND (&&) operatörü kullanarak IF karar kontrol mekanizması üzerinde bir mantıksal karşılaştırma yaparken ancak her iki tarafında doğru (True) dönmesi sonucu ilk kod blogu çalıştırılmaktaydı. Buradaki işlem sonucunda da her iki tarafta doğru(True) döndüğünden ekran çıktısı olarak Hesaplama Başarılı Oldu. metnini vermektedir.

NOT: Durum operatörü ile geriye değer dönerken(return) kontrol sağlayamazsınız. (Örn: !$a ? return 1 : return false; gibi...)

2-Switch

PHP ile kodlama yaparken sadece if kullanarak olasılıksal ifade yapmayız. Bazı işlemler switch ifadesi kullanarak yapılır. Yani verilen değeri değiştirerek bir sonuç elde eder. Bunu basit bir örnekte gösterebiliriz:

<?php
$x = 5;
switch ($x)//x...
   {
   case 1://1 ise...
     echo "Verilen sayı, 1";//Bunu yap.
   break;
   case 3://3 ise
     echo "Verilen sayı, 3";//Bunu yap.
   break;
   case 5://5 ise...
     echo "Verilen sayı, 5";//Bunu yap.
   break;
   default://Hiçbiri değilse...
     echo "Verilen sayı 1, 3 veya 5 değil.";//Bunu yap.
   }
?>

Çıktı:

Verilen sayı, 5

Bu şu şekilde oluyor. 5 değerini x'e atadık. switch komutunu x'e uyguladık ve sorular sorduk. PHP her soruya case ifadesi ile başlar. Sizin elde etmek istediğiniz sonuçlar case ifadesinden sonra gelmeli. Burada dikkat edilmesi gerekilen başka bir şey ise her olasılık ifadesinin break ifadesi ile bitmesi. Eğer değer hiçbir ifadeye uymazsa tıpkı else gibi default ifadesi vardır ve bu değer yapılır. Başka bir örnek:


<?php
$x = "PHP";
switch ($x)
   {
   case "ASP":
      echo "x değeri ASP'dir.";
   break;    case "JS":       echo "x değeri JS'dir.";
   break;    case "PHP":       echo "x değeri PHP'dir.";
   break;
   default:       echo "x değeri ASP, PHP ya da JS değildir.";
   }
?>

Çıktı:

x değeri PHP'dir.

Burada görülüyor ki case mutlaka sayı olması gerekmiyor." " arasına istenilen yazı yazılabiliyor. Bu alıştırmaları iyici anladıktan sonra aşağıdaki alıştırmaya bakınız. Bu hem PHP'de matematik hem de olasılığın birleştirilmesidir. Lütfen ilk önce t bilinmeyeninini hesaplamayın. İlk önce kod işleyişine bakın.

<?php
$x = 5;
$y = 10;
$z = 20;
$t = (($y + $y) / $z) * ($x - $y);
switch ($t)
   {
   case 5:
     echo "Değer 5'dir.";
   break;
   case 10:
     echo "Değer 10'dur.";
   break;
   case -10:
     echo "Değer -10'dur.";
   break;
   default:
     echo "Değer 5, 10 ya da -10 değildir.";
   }
?>

Çıktı:

Değer 5, 10 ya da -10 değildir.

3-İç İçe geçmiş İfadeler

PHP'de tekbir if, tek bir switch ifadesi her şeye yetmez. Aşağıdaki örnek gibi ifleri, switchleri iç içe geçirebilirsiniz. Aşağıdaki örnek bir matematik kodunun bir kısmıdır. Bu kodu inceler iken iflerin ve switchlerin yerine iyi bakın.

<?php
$a = 321;
$b = 742;
$c = 26;
if ($a and $b > $c)
    {
    if ($a > $b)
       echo "$a en büyük sayı.";
    else        echo "$b en büyük sayı.";
    }
elseif ($b and $c > $a)
    {
    if ($b > $c)        print " ";
    else
       echo "$c en büyük sayı";
    }
else
    {
    print " ";
    switch ($a)
    {
    case $b:
       echo "$a eşittir $b";
    break;
    case $c:
       echo "$a eşittir $c";
    break;
    default:
       print " "; }
       }
    }
?>

Çıktı:

742 en büyük sayı.

Burada dikkat edilmesi gereken çok önemli hususlardan biri, her if'in kendi içinde { } ile kapatılması. Unutulmamalı ki, if'in, elseif'in veya else'in içinde if olabilir ama bunlar { } içine alınmalıdır. Ayrıca if, elseif veya else içerisinde switch ifadesi bulunabilir.

7- Fonksiyonlar

PHP fonksiyonel bir dildir ve daha önce yapılmış scriptlerdeki fonksiyon ağırlığı %80'i geçiyor. Yani en basitinden en zoruna scriptler yazarken %80'den fazlasını fonksiyon olarak yazıyoruz. PHP'de bini aşmış fonksiyon vardır hatta her yapılan sürüm atlamasından dolayı binleri bile geçmiştir. Fakat, ne PHP ne de başka bir dilde bir kullanıcının her işini yapacak fonksiyonlar bulunmaz. Siz kendi fonksiyonlarınızı yaparsınız. Yani tıpkı PHP'deki hazır fonksiyonlar gibi siz de fonksiyon yapabilirsiniz. Örnek:

<?php
function yaz()
    {
    echo "İlk PHP fonksiyonum.";
    }
?>

Bu kod hiçbir şey yapmaz! Çünkü sadece fonksiyonun ne yapacağını anlattınız yani deklare ettiniz. Daha bunu yap komutunu vermediniz. Aşağıdaki kod fonksiyonu uygular:

<?php
function yaz()
    {
    echo "İlk PHP fonksiyonum";
    }
yaz();
?>

Çıktı:

İlk PHP fonksiyonum.

Yani en anşılacak şekilde, PHP tanımlanan fonksiyonu uyguluyor. O ne yapması gerekiyorsa yapıyor. İlk önce "function" ifadesi ile yeni bir fonksiyon yapacağım diyorsunuz. Sonra ismini verip değişkenleri belirliyorsunuz. Anlaşılması için dizayn edilen yapı:

function fonksiyon_adi($degisken)
{
//Fonksiyonun yapması gereken olaylar
}

Şimdi de değişkenli bir fonksiyon yazalım:

<?php
function topla($x, $y)
    {
    echo($x + $y);
    }
?>
</source>

Bu fonksiyon değişken içerir. Ne yaptığını sadece bilir verilen fonksiyona göre farklı şeyler yazar. Görevi ise x ve y değişkenlerini toplamaktır. Örnek kullanımı:

<?php
function topla($x, $y)
    {
    echo($x + $y);
    }
echo( topla(5,10);
?>

Çıktı:

15

Bu fonksiyonun görevi verilen değerleri toplamaktı. İşte toplayıp yazdı. Şimdi daha başka bir fonksiyona bakın, fakat bundan önce çok önemli bir bilgi:

<?php
echo();//Şimdiye kadar öğrendiğimiz en önemli fonksiyon.
//UNUTMAYIN, " " içinde gösterilen şey "string" olur
?>

Yani echo komutu mutlaka string cinsinden verileri gösterir. Yani fonksiyona:

   function deneme()
   {
  echo 5;
  }

deseniz bile gösterilen şey string (yazı) olur. Ama bazen size mutlaka ve mutlaka integer (tam sayı) gerekir, işte o zaman şunu kullanırsınız:


<?php
function topla($x, $y) //Fonksiyonu oluşturuyoruz.
    {
    return $x + $y; // x ve y nin toplamı değerine dönüyor
    }

echo( topla(5,10) ); //Şimdi de işlem sayı (int) olarak döndü
?>

return ifadesi fonksiyonu sayı cinsinden döndürür. Yani fonksiyonun cevabı x ve y nin toplamı olan sayı olur.

Kaynakça