Google Fan Webmaster Forum - Tekil Mesaj Gösterimi - Php Full Anlatım
Tekil Mesaj Gösterimi
  #4 (permalink)  
Eski 29-04-2008, 03:47:40
onemsizbiri - ait Avatar
onemsizbiri onemsizbiri isimli üyemiz çevrimdışıdır. (Offline)
 
Kocaeli Şubesi
Mesajlar: 145
Thanks: 0
Thanked 0 Times in 0 Posts
iTrader Puanı: (0)
iTrader Feedback: (0%)
Rep puanı: -2
onemsizbiri biraz seviyesizlik bulunan bir tartışmaya katılmış.
Tanımlı

Burada biçimlendirme_parametleri yerine şunları yazabilirsiniz:



a 12 saat esasına dayanan Anglo-Sakson sistemlerinde öğleden önce (”am”) veya öğleden sonra (”pm”) işaretinin verilmesini sağlar.

A Aynı işaretlerin büyük harfle yazılmasını sağlar.

d İki haneli gün sayısı, tek haneli günlerin önüne sıfıır konur: “01″ - “31″

D Üç haneli gün adı kısatması: “Cum”

F Uzun ay adı: “Ocak”

h 12 saatlik sistemde saat: “01″ - “12″

H 24 saatlik sistemde saat: “00″ - “23″

g 12 saatlik sistemde tek haneli saatlerin önüne sıfır konmadan saat: “1″ - “12″

G 24 saatlik sistemde tek haneli saatlerin önüne sıfır konmadan saat: “0″ - “23″

i Dakika: “00″ - “59″

j Tek haneli sayıların önüne sıfır konmadan gün sayısı “1″ - “31″

l (küçük L harfi) Uzun gün adı: “Cuma”

L Artık yıl olup olmadığına ilişkin Boolean (doğru/yanlış) değişken. Artık yıl ise 1, değilse 0.

m Tek hanelilerin önüne sıfır konarak ay sayısı: “01″ - “12″

n Tek hanelilerin önüne sıfır konmadan ay sayısı: “1″ - “12″

M Kısaltılmış ay adı: “Şub”

s Saniye: “00″ - “59″

S İngilizce (’ncı anlamına) 2 karakter ek: “th”, “nd”

t Belirtilen ayın gün sayısı; “28″ - “31″

w Haftanın gün sayısı: “0″ (Pazar veya Pazartesi) - “6″ (Cumartesi veya Pazar)

Y Dört haneli yıl: “2000″

y İki haneli yıl “00″

z Yılın gün sayısı: “0″ - “365″



Örnek:



print (date (”l dS of F Y h:i:s A”));



Browser penceresine İngilizce bölgesel ayarlar yapılmış bir bilgisayara kurulu Web sunucusunda: “Sunday 30th of July 2000 07:51:08 AM” yazdırır.



print (date (”l, d F Y g:i:s”));



Browser penceresine Türkçe bölgesel ayarlar yapılmış bir bilgisayara kurulu Web sunucusunda: “Pazar, 30 Temmuz 2000 07:51:08″ yazdırır.

date() ve mktime() fonksiyonlarını birlikte kullanarak geçmiş veya gelecek tarihleri bulma imkanı de vardır.



Örnek:

Code:
$yarin  = mktime (0,0,0,date(”m”)  ,date(”d”)+1,date(”Y”));
$gecen_ay = mktime (0,0,0,date(”m”)-1,date(”d”),  date(”Y”));
$gelecek_lyl = mktime (0,0,0,date(”m”),  date(”d”),  date(”Y”)+1);
PHP’de Program Denetimi
if Deyimi
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 ( $parola == “” ) {
            echo (”Sitemize girmek için parola yazmanız gerekir.<br>”);
            echo (”Lütfen parolayı yazın! <br>”);
            }
?>
switch deyimi
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 için kısa yol
<?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.



while döngüsü





Code:
while (koşul) {
            Koşul doğru ise yapılacak işlere ilişkin komutlar
            }
<?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 ++;
            }
?>
                             do..while
            do {
            Koşul doğru ise yapılacak işlere ilişkin komutlar
            }
while (koşul);
            $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 ) ;




for döngüsü





Code:
for ( $yeni_degisken atama ; koşul ; artış basaması ) {
            Koşul doğru ise yapılacak işlere ilişkin komutlar
            }


Code:
<?php
            for ($sayac = 1; $sayac <= 7 ; $sayac++ ) {
            print (”<font size= $sayac >”);
            print (”<b><p>İyileri iyilikleri ile alkışlayınız!</b></p>”);
            print (”</font>”);
            }
?>


Döngüyü sona erdirmek için: break



Code:
<?php
            $tekrar = 10 :
            for ($sayac = 1; $sayac <= $tekrar ; $sayac++ ) {
            if ( $tekrar <= 0 )
            break;
            print (”<font size= $sayac >”);
            print (”<b><p>İyileri iyilikleri ile alkışlayınız!</b></p>”);
            print (”</font>”);
            }
?>

Döngüyü sürdürmek için: continue


Code:
<?php
            $sayac = -5 :
            for (; $sayac <= 7 ; $sayac++ ) {
            if ( $sayac <= 0 )
            continue;
            print (”<font size= $sayac >”);
            print (”<b><p>İyileri iyilikleri ile alkışlayınız!</b></p>”);
            print (”</font>”);
            }
?>


Bu durumda PHP, conktinue komutunu gördüğü anda for döngüsünün geri kalan kısmını icra etmek yerine başa dönecek ve döngüyü yeniden icra etmeye başlayacaktır. Döngünün ilk satırınnda kod parçasını, bir sayfa kodunun içine yerleştirir ve önce bu şekliyle, danha sonra $sayac= 1 yazarak sınarsanız, continue komutunun programı sayaç değişkeninin değeri 1 oluncaya kadar durdurduğunu ama bu sırada for döngüsünün devam ettiğini göreceksiniz. ($sayac değişkeninin değerini, Form yoluyla ziyaretçiden nasıl alacağımızı daha sonra göreceğiz.)

Fonksiyonlar

Fonksiyon Tanımlama ve Çağırma

PHP’de fonksiyonlar function komutu ile oluşturulur. Tanımladığımız fonksiyon, kendisini göreve çağıracak komuittan, yapacağı işlemde kullanmak üzere değer alacaksa, bu değerlere vereceğimiz değişken isimleri fonksiyon adının yanında parantez içinde gösterilir. Fonksiyon birden fazla değer bekleyecekse, bunların değişken adlarının arasına virgül koyarız. Fonksiyona ulaştırılan değerlere argüman denir. Fonksiyon, kendisine bir değer ulaştırılmasını beklemese bile içi boş parantez koymamız gerekir. Buna göre PHP’de fonksiyon şöyle yazılır:



function fonksiyonun_adı (argüman1, argüman2, … argümanN) {

fonksiyonun yapacağı işe ilişkin komutlar

}



Fonksiyon adları, değişken adları ile aynı kurallara tabidir. Fonksiyon içinden fonksiyon çağrılabilir; fonksiyonların içinde PHP’nin kendi fonksiyonları kullanılabilir. Şimdi, ilk örnek fonksiyonumuzu yazalım.



Yukarıdaki örneklerde, PHP’ye, bir Web sayfası oluştururken HTML ögesi olacak bazı satırların başına <H1>, satır sonlarına <BR> gibi etiketler koydurduğumuza dikkat etmiş olmalısınız. Bir programda bu işi sık sık yapacaksak, yani metinlerimiz <BR> ile bitecek, bazı başlıklarımız ise sayfamıza HTML’in başlık etiketleri ile gönderilecekse, bu etiketleri defalarca yazmamız sadece zorluk değil, fakat aynı zamanda yazım hatasını davet eden bir davranır olur. PHP’de kendisine vereceğimiz metinleri başlık veya gövde yazısı olarak biçimlendirecek fonksiyonlar tanımlayarak, programcılıkta daima tehlikeli olan insan unsurunu asgarîye indirebiliriz. Şu programı yazdir01.php adıyla kaydederek, Browser’da açın:



Code:
<?php
function yazdirBR ($metin) {
            print (”$metin<br>\n”);
            }
function yazdirH1 ($metin) {
            print (”<h1>$metin</h1>\n”);
            }
function yazdirH2 ($metin) {
            print (”<h2>$metin</h2>\n”);
            }
function yazdirH3 ($metin) {
            print (”<h3>$metin</h3>\n”);
            }
function yazdirH4 ($metin) {
            print (”<h4>$metin</h4>\n”);
            }
function yazdirP ($metin) {
            print (”<p>$metin</p>\n”);
            }
// Başka kodlar buraya girebilir
yazdirH1(”Bu H1 Başlık”);
yazdirH2(”Bu H2 Başlık”);
yazdirH3(”Bu H3 Başlık”);
yazdirH4(”Bu H4 Başlık”);
yazdirBR(”Bu kendisinden sonra BR olan birinci metin.”);
yazdirBR(”Bu kendisinden sonra BR olan ikinci metin.”);
yazdirP(”Bu uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun bir paragraf metni.”);
yazdirP(”Bu uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun bir diğer paragraf metni.”);
?>
</BODY>
</HTML>

Bu programda, yazdirBR(), yazdirH1(), yazdirH3(), yazdirH4(), ve yazdirP() adlarıyla altı fonksiyon tanımladığımızı görüyorsunuz. Bu fonksiyonların hepsi kendilerini göreve çağıran satırdan, kendilerine bir değer verilmesini istiyorlar ve bu değeri $metin adlı değişkende tutuyorlar. Fonksiyonlarımız tümü de PHP’nin print() fonksiyonundan yararlanıyor; ancak bu fonksiyonun nasıl kullanılacağını, nasıl işletileceğini de belirliyorlar. Buna göre bazı fonksiyonlarımız $metin adlı değişkenin değerini önüne ve arkasına bir HTML etiketi koyarak Browser’a gönderiyor; birisi ise sadece $metin değişkenin tuttuğu değerin sonuna bir HTML etiketi koyduruyor. Fonksiyonlarımı buradaki örnekte olduğu gibi hemen oluşturulduktan sonra göreve çağırmayız. Geleneksel olarak, bir programda kullanılacak fonksiyonlar, programın baş tarafında toplanır ve daha sonra nerede gerekirse orada, çağrılırlar. Fonksiyonları adlarını ve kendilerine verilmesi gereken bir değer varsa o değeri parantez içinde yazarak çağırırız. Burada olduğu gibi, fonksiyonu göreve çağırırken parantez içinde değerin kendisini yazabileceğimiz gibi, bu değeri tutan bir değişkenin adını da yazabiliriz.



Code:
<?php
function topla ($sayi1, $sayi2) {
            $sonuc = $sayi1 + $sayi2;
            return $sonuc;
            }
function cikart ($sayi1, $sayi2) {
            $sonuc = $sayi1 - $sayi2;
            return $sonuc;
            }
function carp ($sayi1, $sayi2) {
            $sonuc = $sayi1 * $sayi2;
            return $sonuc;
            }
function bol ($sayi1, $sayi2) {
            $sonuc = $sayi1 / $sayi2;
            return $sonuc;
            }
// Başka kodlar buraya girebilir
$sayi1 = 12;
$sayi2 = 5;
            print topla($sayi1, $sayi2);
            print (”<br>”);
            print cikart($sayi1, $sayi2);
            print (”<br>”);
            print carp($sayi1, $sayi2);
            print (”<br>”);
            print bol($sayi1, $sayi2);
            print (”<br>”);
?>


Bu programda, dört aritmetik işlemi yapan dört ayrı fonksiyon tanımlıyoruz. Fonksiyonlarımız kendilerini göreve çağıran komuttan, kendilerine iki değer vermesini bekliyorlar ve bu değerleri $sayi1 ve $sayi2 adlı değişkenlere yazıyorlar. Sonra herbiri, kendisinden beklenen aritmetik işlemi yaparak, sonucunu $sonuc adlı değişkene yazıyor. Burada dikkat edeceğimiz nokta, return komutudur. Bu komut, f onksiyonun elde ettiği değeri, değeri tutan değişkenin adıyla, fonksiyonu çağırmış olan satıra gönderir. return komutuyla, kendisini göreve çağıran satıra değil fakat mesela başka bir fonksiyona da değer gönderebiliriz:



return ( baska_fonksiynon ( $degisken)) ;



Fonksiyonun return satırında böyle bir başka fonksiyonun adı yazmıyorsa, bulunan değer göreve çağıran satıra gönderilir.

Bu program, içine bizim yazdığımız iki değeri hesaplayarak, Browser’a gönderecektir. Ancak bu değerler ziyaretçinin dolduracağı bir formdan alınabileceği gibi, program tarafından da hesaplanabilir



Fonksiyona varsayılan değer verebiliriz

Buradaki örneklerde tanımladığımız fonksiyonlara bekledikleri değerleri, onları göreve çağırdığımız noktada biz veriyoruz. Ancak öyle durumlar olabilir ki, fonksiyonun beklediği değerlerden biri veya bir kaçı, göreve çağıran satır tarafından verilmeyebilir; fonksiyon varsayılan bir değerle çalıştırılabilir.



Code:
<?php
function yazdir ($metin, $boyut=3) {
            print (”<font size=\”$boyut\”>$metin</font><br>”);
            }
// Başka kodlar buraya girebilir
yazdir(”Bu Başlık”, 5 );
yazdir(”Bu küçük boyutta bir metin”, 2);
yazdir(”Bu varsayılan boyutta bir metin”);
yazdir(”Bu çok büyük Başlık”, 8);
yazdir(”Bu uzun bir paragraf metni. Boyutu varsayılan ölçüde. Bu uzun bir paragraf metni. Boyutu varsayılan ölçüde. Bu uzun bir paragraf metni. Boyutu varsayılan ölçüde.”);
?>


Bu örnekte, daha öncekilerden farklı olarak fonksiyonun, beklediği iki argümandan birisini, fonksiyonu tanımlarken verdiğimize dikkat edin: ” function yazdir ($metin, $boyut=3)” ifadesi, PHP’ye, “Bu fonksiyona ikinci argüman eksik gönderilirse, telaşa kapılma, onun yerine 3 rakamını kullan!” anlamına gelir. Nitekim, programın daha ilerdeki bölümlerinde bu fonksiyon görevlendirilirken birinci argümanın değeri olan metin verildiği halde, iki ayrı yerde ikinci argümanın değeri verilmiyor. Bu iki durumda., PHP, yazdir() fonksiyonunda varsayılan değer olan 3′ü kullanıyor.



Değişkenlerin kapsamı: global ve static

dört fonksiyonda da aynı değişken adlarını kullanıyoruz ve sonucu aynı isimle print() fonksiyonuna gönderiyoruz. PHP nasıl oluyor da, aynı isimli değişkenleri buradaki gibi ayrı ayrı değerlerle ele alabiliyor? Bu sorunun cevabını verebilmek için değişkenlerin kapsam alanına bakmamız ve ve bu arada global deyimi ile tanışmamız gerekir.



Bir fonksiyonun değişkenleri, sadece o fonksiyonun ömrü süresince vardır; hiç bir fonksiyon diğer bir fonksiyonun değişkenlerinin veya kendisine verilmemiş bir başka değişkenin değerini bilemez; kullanamaz.
Alıntı ile Cevapla