RockLife Rock Metal Forum
Would you like to react to this message? Create an account in a few clicks or log in to continue.



 
AnasayfaAnasayfa  AramaArama  Latest imagesLatest images  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

 

 Php ye giriş Konu: 4

Aşağa gitmek 
YazarMesaj
Tatlı-Cadı
Özel Üye
Özel Üye
Tatlı-Cadı


Mesaj Sayısı : 798
Başarı Puanı : 2236
Rep Puanı : 1
Kayıt tarihi : 28/05/09
Yaş Yaş : 33
Nerden : Almanya
İş/Hobiler İş/Hobiler : Golf

Php ye giriş Konu: 4 Empty
MesajKonu: Php ye giriş Konu: 4   Php ye giriş Konu: 4 Icon_minitimePaz Ekim 24, 2010 8:26 am

İşlemciler (Operatörler)

Yukarıdaki örnekleri birlikte yaptıysak, = işaretini bol bol kullandık ve böylece PHP'nin bir çok operatöründen biriyle tanıştık. Buna PHP dilinde "atama operatörü" denir. Bu işlemci sadece yukarıda kullandığımız gibi, bir değişkenin bir değere eşitliğini ilan etmek amacıyla kullanılmaz. Örneğin:

print ( $sayi = 123 ) ;

ifadesinde olduğu gibi, bir fonksiyonun içinde de hem atama işlemi yapılabilir; hem de işlem yürütülür. PHP'nin aritmetik, birleşik-atama, birleştirme, karşılaştırma ve mantıksal sınama operatörleri vardır.

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

Aritmetik işlemleri gerçek sayılarla yaptığımız gibi, tuttuğu değer sayı olan değişkenlerle de yapabiliriz.

Daha önce, PHP'de değişken tanımlar ve bunlara değer atarken sayı olan değişkenleri tırnak işareti kullanmadan, alfanümerik değişkenleri ise tırnak içinde yazdığımızı hatırlayacaksınız. Bu, geleneksel hale gelmiş olan bir programcılık alışkanlığıdır. PHP, tırnak kullanmasanız da bir değişkenin sayı olup olmadığını anlar; daha sonra bu değişkenlerle aritmetik işlem yapabilir. PHP ayrıca rakamla başlayan alfanümerik değişkenleri sayı olarak kullanmaya kalktığınızda, bu değerin başındaki bütün rakamları sayı olarak kabul eder. PHP açısından harf veya işaretle başlayan alfanümerik değişkenlerin sayı olarak değeri sıfırdır. Örnek:

$a = 6;

$b = "22/A"

print ($a + $b)

sonuç olarak 28'i verecektir; veya

$a = 6;

$b = "A/22"

print ($a + $b)

sonuç olarak 6 çıkacaktır. Bu küçük deneyi yaparsanız, PHP ile program yazarken hangi değişkenin ne sonuç vermesi gerektiğini dikkatle düşünmek zorunda olduğunuzu görürsünüz. Bir kişinin geliri ile adresini toplamak, programcı olarak arzu ettiğiniz bir işlem olmayabilir!

Bununla birlikte elimizde bir kişinin adı ve soyadı ayrı değişkenler halinde ise, bunları birbirine ekleyerek (concatenation) ortaya yeni bir alfanümerik değişken çıkartabiliriz:

<?php

$adi = "Reşit";

$soyadi = "Muhtar";

$adi_soyadi = $adi . " " . $soyadi;

print ("<br>");

print ($adi_soyadi);

print ($adi . "'nın soyadı " . $soyadi . "'dir.")

?>

Bu örnekte, sadece ekleme yoluyla yeni bir değişken oluşturmakla kalmıyoruz; fakat alfanümerik değişkenleri, başka metinlerle de birbirine ekleyebildiğimizi görüyoruz. Bu işlemi nokta işaretiyle (.) yapıyoruz. Bu işlemciyle sadece değişkenlerin değerlerini değil fakat metinleri de birbirine ekleyebiliriz:

<?php

print ("İyileri iyikleri ile alkışla; " . "..." . "ve sen soluklarında daima Mesîh ol..! ")

?>

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"

Bu işlemi zihnimizde, "A değişkeninin mevcut değerine 5 ekle, çıkan sonucu A değişkenin yeni değeri yap!" şeklinde canlandırabiliriz.

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.

++ veya -- işaretinin değişken adından önce veya sonra olmasının sonucu farklı olur. İşaretler değişkenin adından önce ise PHP önce değişkenin değerini bir arttırır veya eksiltir, sonra bu yeni değeri işleme katar; işaretler değişken adından sonra ise, PHP değişkenin o andaki değerini işleme kadar, sonra değeri bir arttırır veya 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. Söz gelimi, değeri 6 olan değişkenin 5'ten büyük olup olmadığını sınarsak, sonuç doğru; 5'ten küçük olup olmadığını sınarsak sonuç yanlış çıkacaktır. PHP'nin karşılaştırma işlemcileri şunlardır:

İş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'nin karşılaştırma işlemcileri hem tam ve ondalık sayı türü değerlerle, hem de alfanümerik değerlerle kullanılabilir.

Daha ileri aşamalarda, bazen değişkenlerimizin karşılaştırmasının bu kadar basit olamayacağını; kimi zaman iki grup değişkenin karşılaştırılması gerektiği durumların bulunduğu göreceğiz. Diyelim ki, bir öğrencinin başarılı sayılması için hem vize notunun, hem de yılsonu sınav notunun belirli sayılardan büyük olması gerekiyor. Bu durumu ancak karmaşık-mantıksal sınamadan geçirmemiz gerekir. Bu sınamayı iki ayrı sınama sonucu ile birlikte kullanırız. Örneğin:

vize notu yeterli - final notu yetersiz = kalır (yanlış/false)

vize notu yeterli - final notu yeterli = geçer (doğru/true)

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

"veya" ve "ve" sınamaları için iki ayrı işlem işareti bulunmasının sebebi, PHP'nin işlem sırasıyla ilgilidir. Birazdan oraya geliyoruz. Şimdi, kavranması kolay olmayan ikili mantıksal sınamalara bir örnek verelim; yukarıda öğrencinin durumunu PHP komutu olarak yazalım.

<?php

$vize = 45;

$final = 65;

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

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

}

else {

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

}

?>

Mantıksal karşılaştırma işlemleri daha da karmaşık olabilir. Örneğin, öğrencinin geçmiş sayılması için yılsonu vize ve final notlarının 45'dan yüksek, ve ya birinci sömester notunun ya da vize ve final notlarının ortalamasının 65'den yüksek olması şartı aranabilir. (Kabul; kötü bir örnek oldu. Ama sırf alıştırma için!) Bu durumda kodu şöyle yazmamız gerekirdi:

<?php

$vize = 45;

$final = 65;

$ilk_sem = 45;

$ortalama = ($vize + $final) / 2;

if (($vize >= 45 && $final >= 45) and ($ilk_se >= 65 || $ortalama >= 65)) {

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

}

else {

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

}

?>

Burada, PHP önce || veya && işaretinin sonucunu bulacak sonra and veya or işlemcisinin gereğini yapaçaktır. Bu kodun vereceği sonucu, bilgisayarda çalıştırmadan tahmin edebilir misiniz? İpucu: Bu öğrencinin yerinde olmak istemezdim!

İşlem önceliği deyince.. Bütün programlama dilleri gibi PHP için de işlemlerin hangi sırada yapıldığı önem taşır. "5 + 4 * 2" işleminin sonucu, önce 5 ile 4'ün toplanması ve sonucun 2 ile çarpılması halinde başka, 4'ün 2 ile çarpılması ve sonucun 5 ile toplanması halinde başka olacaktır. Bu bakımdan, PHP'nin hangi işlemi önce yaptığı, hangi işlemi sonra yaptığını bilmemiz gerekir. PHP'deki işlemlerin yapılış sırası şöyledir:

++ ve --

/ * %

+ -

< <= => >

== === | =

&&

||

= += -= /= %= .=

and

xor

or

r.



Sabit Değerler

İster Web, ister Web-dışı amaçlı olsun, bir programın bazen başındanh sonuna kadar değeri değişmeyen değişkene ihtiyacı olabilir. "Değeri değişmeyen değişken" teriminin anlamsız olduğu kanısında iseniz, bunlara sabit değerler adını da verebilirsiniz! PHP'de sabit değerler, Script boyunca değişmeden kalır.

Sabit değerler, değişkenlerden farklı şekilde oluşturulur. Bunun için PHP'nin define() fonksiyonunu kullanırız. Bu fonksiyonun yazım kuralı şöyledir:

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);

?>

Burada tanımladığımız DOLAR_KURU sabit-değeri, tıpkı bir değişken gibi kullanılabilir. Fakat bir sabit değeri tanımladıktan sonra içeriğini değiştiremezsiniz. Sabit değer ile aynı ismi taşıyan değişken oluşturmak mümkündür; ancak aynı ismi taşısa da bir sabit ile değişkeni (birinin adının önünde $ işareti bulunduğu için) karıştırmak kolay olmasa gerek.

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>");

}

define ( "DOLAR_KURU", 625675);

$TL_Tutar = $Dolar_miktar * DOLAR_KURU;

print ($TL_Tutar);

?>

Bu programı, bu şekilde ve define() komutunu en üst satıra alarak çalıştırırsanız, ikinci çalıştırışınızda programın sabit değeri yeniden oluşturmayı reddettiğini görecektiniz. Sabit değerleri, Web sitesinde ziyaretçilerin girdiği verilerden alarak kendiliğinden oluşturan bir program yazdığınızda, defined() fonksiyonu mantıksal hata yapmanızı önler.

PHP'nin kullanılmaya hazır bir kaç sabid değeri vardır. True (doğru) değeri 1 olan, False (yanlış) ise değeri sıfır sayısı veya boş alfanümerik olan iki sabittir. Diğer sabitler şunlardır:

__FILE__ : O anda çalışmakta olan PHP dosyasının adı (kelimenin önünde ve sonunda iki alt-çizgi var);

__LINE__ : Bu ifadenin yer aldığı satırın sayısı (kelimenin önünde ve sonunda iki alt-çizgi var);

PHP_VERSION: PHP'nin sürümü (İki kelimenin arasında bir alt-çizgi var);

PHP_OS: PHP'nin çalıştığı işletim sistemi (İki kelimenin arasında bir alt-çizgi var);

PHP_VERSION : PHP'nin sürümü (İki kelimenin arasında bir alt-çizgi var);

Bunlara ek olarak, E_ERROR, E_WARNING, E_NOTICE ve E_PARSE şeklinde hata durumunda hatanın çeşitli özelliklerini bildiren sabit değerleri de kullanabiliriz.

PHP hakkında çok daha geniş bilgiyi phpinfo() fonksiyonunu çağırak alabilirsiniz.

Tarih ve saat Verisi

PHP, o andaki zaman bilgisini, saat, dakika, saniye ve salise olarak; tarih bilgisini yıl, ay, gün (sayı veya isim olarak), programımızın herhangi bir yerinde bize bildirebilir. Bu bilgiyi Web sunucusunda istediğimiz anda, muhtemelen sunucunun bulunduğu bilgisayarın sistem saatinden alacak olan PHP, sunucu programında farklı bölgesel ayarlar için gerekli düzenleme yapılmışsa, bu imkandan yararlanarak bize sunucunun değil, arzu ettiğimiz bölgenin saat ve tarihini bildirebilir.

Özellikle Türkiye'de olmayan bir sunucuda bu imkanın bulunup bulunmadığını, ancak sınayarak veya sistem yöneticisine sorarak öğrenebiliriz. Böylebir sıNama için şu kodları programınızın başına koyun:

<?php

setlocale ("LC_TIME", "TR");

print (strftime ("Türkçe bugün günlerden: %A "));

?>

Browser penceresinde "Türkçe bugün günlerden Sunday" yazısını okursanız, sunucuda Türkçe için bölgesel ayar desteği yok demektir!

PHP'nin zaman ve tarih belirlemekte kullanabileceğiniz başlıca fonksiyonu getdate() ise şxöyle kullanılır.

getdate() Tarih ve saat bilgisini alır ve ve vereceğiniz bir isimdeki dizi-değişkende kaydeder. Örnek:

$saat_tarih = getdate()

Bu durumda, $saat_tarih dizi değişkeninde sırasıyla şu bilgiler yer alır:

32 saniye

57 dakika

6 saat

30 ayın gün sayısı (1-31)

0 haftanın gün sayısı (1-7)

7 ayın sayısı (1-12)

2000 yıl

211 yılın kaçıncı günü

Sunday günün adı

July ayın adı

964929452 Unix sistemlerinde Epoch biçiminde zaman bilgisi

PHP'nin tarih ve saat bilgisini biçimlendirmede yararlandığımız date() fonksiyonunu daha sonra metin biçimlerdirme bölümünde ele alacağız

PHP'de Program Denetimi

Bilgisayar programı, belirli değerlere göre kendi izleyeceği yolu kendisi bulmalıdır. Bir Web programı da aynı mantıkla tasarlanır. PHP, bir kısmını daha önceki bölümlerde, bir kısmını da şimdi ele aldığımız araçları kullanarak, belirli durumlarda belirli istikametlere gidecek, yeri geldiğinde geri dönecek, yeri geldiğinde başka bölümlere sıçrayacak bir akış planı tasarlamamıza imkan verir.

Web programlarımızda, ziyaretçilerimizin sitemizde yaptıkları veya yapmak istediklerini bildirdikleri işe göre sayfalar, bu işlere göre sayfa içerikleri sunarız. Web programımız ziyaretçimizin hareket tarzına ve amacına uygun olarak ilerler. Bir programın akış planını kontrol etmemizi sağlayan unsurlar çoğu zaman programın kendi kendine karar vermesini sağlayan araçlardır. PHP'de program denetim unsurları, programın gidiş yönünü değiştirmemizi veya olduğu yerde durmasını ve beklemesini veya bir işi biteviye yapmasını sağlar. Bu bölümde bu araçları ele alacağız.

if Deyimi

İnsan olarak kararlarımızı hemen hemen daima "bir şey öyle ise böyle, öyle değilse şöyle davranmak" üzere almaz mıyız? PHP programında if deyimi bunu sağlar. Kelime anlamı eğer olan if deyimi ile programımızı karar almaya zorlarız. Ne var 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:

if ( koşullar ) {

koşullar doğru ise yapılacak işlere ilişkin komutlar

}

elseif (diğer koşullar) {

diğer koşullar 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 komutları icra eder; 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 işleri icra eder. Nihayet diğer her hangi bir durumda icra edilmesini istediğimiz komutları else bölümünde belirtiriz. PHP, if deyimi doğru değilse, deyime ait süslü parantezin içindeki işleri yapmadan 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 işleri icra eder. Deyimde else bölümü de yoksa, PHP yoluna if deyiminden sonraki ilk adımdan devam eder. Bunu bir örnekle belirtelim:

<?php

$sarki = "Güneş Doğacak";

if ( $sarki == "Güneş Doğacak" ) {

echo ("Seçtiğiniz şarkının adı: Güneş Doğacak!");

}

elseif ($sarki == "Beklerim Ben") {

echo ("Seçtiğiniz şarkının adı: Beklerim Ben!");

}

else {

echo ("Lütfen bir şarkı seçiniz!");

}

?>

Çoğu zaman if deyimlerini birden fazla koşulu sınayacak şekilde yazarız; bununla birlikte elseif ve else bölümleri olmadan da yazılabilir:

<?php

if ( $parola == "" ) {

echo ("Sitemize girmek için parola yazmanız gerekir.<br>");

echo ("Lütfen parolayı yazın! <br>");

}

?>

Buradaki if deyimi $parola 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 unsur, switch deyimidir. Adı anahtar anlamına gelen switch deyimi, verilen bir değişkenin değerinin sıraladığımız koşullardan hangisine uygun olduğunu sınar ve o koşula ilişkin komutları icra eder. PHP'nin yaptığı işi bitirdikten sonra switch deyiminin dışına çıkmasını sağlayan, break komutu vardır:

switch ( değişken ) {

case KOŞUL-1 ;

Koşul-1 doğru ise yapılacak işlere ilişkin komutlar

break;

case KOŞUL-2 ;

Koşul-2 doğru ise yapılacak işlere ilişkin komutlar

break;

case KOŞUL-3 ;

Koşul-3 doğru ise yapılacak işlere ilişkin komutlar

break;

case KOŞUL-4 ;

Koşul-4 doğru ise yapılacak işlere ilişkin komutlar

break;

......................

......................

default:

diğer her durumda yapılacak işlere ilişkin komutlar

}

switch 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 koşulların sınanması gereksiz e default işlerin icra edilmesi ise hata olur. Bu deyimi de bir örnekle görelim:

switch ( $sarki ) {

case "Güneş Doğacak" ;

echo ("Seçtiğiniz şarkının adı: Güneş Doğacak<br>") ;

break;

case "Derdime Derman" ;

echo ("Seçtiğiniz şarkının adı: Derdime Derman<br>") ;

break;

case "Haberi Yok" ;

echo ("Seçtiğiniz şarkının adı: Haberi Yok<br>") ;

break;

case "Sonsuza kadar" ;

echo ("Seçtiğiniz şarkının adı: Sonsuza kadar <br>") ;

break;

default:

echo ("Seçtiğiniz şarkının adı bilinmiyor<br>") ;

}

Programımız, bu kodu icra ederken,, $sarki adlı değişkenin değerini, buradaki dört isimle karşılaştıracaktır. Şarkının adı, "Güneş Doğacak" ise ilk durum gerçekleşmiş olacak; program Browser pencerisine şarkının adını yazacak (ve muhtemelen bu sözlerini görüntüleyecek!) 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şun azaman kaybedecekti; daha da garibi, en sondaki default komutu da icra edileceği için programımız Browser pencerisine hem seçilen şarkının adını, hem de "Seçtiğiniz şarkının 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 uzadıya 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ıramak istiyoruz:

<?php

$uyari = ($parola == "" ) ? "Parola yazmanız gerekir" : "Teşekkür ederiz" ;

echo ($uyari);

?>

Bu kod parçacığı, ziyaretçinin parola girip girmediğini $parola değişkeninin içinin boş olup olmadığına bakarak anlayacak ve $parola değişkenin içi boş ise (yani soru işaretinin sorguladığı durumun doğru olması halinde) iki nokta üstüskte işaretinden önceki metni $uyarı değişkenin içeriği haline getirecek; $parola değişkeninin içi dolu ise (yani koşul 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 sınav sonucuna göre belirlennen $uyarı değişkeninin değerini Browser penceresinde görüntüleyecektir.

Döngüler

Yukarıdaki iki denetim ögesi de programın ileri doğru akışını bozmayan araçlardır. Oysa bazen programımızın bir koşul gerçekleşincele kadar yerinde sayması ve koşul gerçekleşmedikçe ilerlememesi gerekebilir. Kimi zaman da programımıza bir işi bitirmeden ileri gitmemesini biz bildiririz. Program akışının bu tür denetimini döngü deyimleri sağlar. PHP'de iki tür döngü vardır: bir durum devam ettiği veya etmediği sürece yapılan ve kaç kere tekrar edeceği bilinemeyen while döngüleri, ve tekrar sayısı belirli for döngüleri.

while döngüsü

Bir değişkenin içeriğinin belirli bir şartı karşılaması veya karşılamaması halinde icra edilir. Burada dikkat edeceğimiz nokta, programın icrası sırasında değişkenin içeriğinin veya koşulun değişmesinin sağlanmasıdır. Aksi taktirde pıgramımız sonsuz döngüye girer ve muhtemelen çöker. while döngüsü şöyle yazılır:

while (koşul) {

Koşul doğru ise yapılacak işlere ilişkin komutlar

}

Bu yöntemin yaygın kullanıldığı alan, bir sayaçla yaptırılan işlerdir. Aşağıdaki programı while.php adılma kaydedip, çalışrırsanız, PHP, Browser'ın yazı türü boyutunu 1'den 7'ye kadar büyüterek, aynı metni yazdıracaktır:

<HTML>

<HEAD>

<TITLE>PHP'de Döngü</TITLE>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">

</HEAD>

<BODY>

<?php

$sayac = 1;

while ( $sayac <= 7 ) {

print ("<font size= $sayac >");

print ("<b><p>İyileri iyilikleri ile alkışlayınız!</b></p>");

print ("</font>");

$sayac ++;

}

?>

</BODY>

</HTML>

Programımız, while döngüsü içindeki iken, sonsuz döngüden kurtulabilmek için, yazıyı yazdırdıktan sonra, $sayac değişkenini bir arttırıyor. Aksi taktirde, değişken hiç bir zaman while döngüsünün beklediği şarta kavuşarak 7'ye eşit hale gelemeyecektir. (Programı, sondaki "$sayac ++;" satırını kaldırarak denerseniz, zararsız bir sonsuz döngünün ne olduğunu görebilirsiniz! Ama önce Browser'ın dur düğmesinin yerinde durup durmadığna bir bakın!)

while döngüsün aradığı şartın yerine gelmesi, her zaman burada olduğu gibi, tabir yerinde ise "elle" yapılmaz; döngünün icra ettiği komutlar veya fonksiyonlar koşulu içeren değişkeni değiştirebilirler. Sözgelimi elektronik ticaret sitemizde Web ziyaretçimizin while içinde yaptığı alışverişin tutarını koşul olarak kullanabiliriz ve bu koşulu içeren değişken alışveriş ile değişebilir.

do..while

while döngüsü farkettiğiniz gibi, ileri sürdüğümüz şartı, iyi yapmadan önce sınar; ve bu şart ortadan kalkmamışsa (yani henüz doğru/true ise) yapacağı işi yapar; başka bir deyişle while döngüsünün yapacağı iş hiç yapılmayabilir. Fakat sınamanın iş yapıldıktan sonra yerine getirildiği bir şekli de vardır: do..while.. Bu döngü ise şöyle yazılır:

do {

Koşul doğru ise yapılacak işlere ilişkin komutlar

}

while (koşul);

Burada gördğünüz gibi do..while döngüsü en az bir kere icra edilir; çünkü şartın sınanması yapılacak işe ilişkin komutlardan sonra gelmektedir. Bu döngünün aradığı şartın döngünün yaptığı işlerin sonucu veya kod bölümünde bizim tarafımızdan gerçekleştirilmesi için igerekli komutların bulunmasına dikkat etmelisiniz. Yoksa, bu döngü de sonsuzluğa erişir! Yukarıda örneği, bu yöntemle yazalım:

<?php

$sayac = 1;

do {

print ("<font size= $sayac >");

print ("<b><p>İyileri iyilikleri ile alkışlayınız!</b></p>");

print ("</font>");

$sayac ++;

}

while ( $sayac <= 7 ) ;

?>

Bu döngüyü yazarken, while satırının sorunda noktalı virgül bulunduğuna dikkat edin.
Sayfa başına dön Aşağa gitmek
https://rocklife.forum.st
 
Php ye giriş Konu: 4
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Php Ye Giriş Konu: 11
» Php ye Giriş Konu: 10
» Php ye Giriş Konu: 9
» Php ye Giriş Konu: 8
» Php ye Giriş Konu: 7

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
RockLife Rock Metal Forum :: Herşey Burda :: Webmaster&Webtasarım :: Programlama :: C ++ , C # , PHP-
Buraya geçin: