TRForumcu.NeTWebmaster / Web Dizayn Scriptler / Programlama DilleriProgramlama Dilleri Asp & Php (Moderatör: Gondolin){ Fonksiyon Tanımlama ve Çağırma | Php
Konu Bilgileri
Konu Başlığı { Fonksiyon Tanımlama ve Çağırma | Php
Cevaplar 0
Sonraki Sonraki Konu
Görüntüleyenler0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Görüntülenme 223
Önceki Önceki Konu
Sayfa: [1]   Aşağı git
Yazdır
Konu Derecelendirme: 0 Bookmark and Share
Konu: { Fonksiyon Tanımlama ve Çağırma | Php  (Okunma Sayısı 223 defa) EkleBunu Sosyal Paylaşım Butonu
|| Kontecau ||
Saygıdeğer Üye
********


Mesaj : 3.214
Forum Para : 3328.00 YTL
« : 20 Ocak 2008, 13:40:36 »


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ğerlerevereceğimiz değişken isimleri fonksiyon adının yanında parantez içindegösterilir. Fonksiyon birden fazla değer bekleyecekse, bunlarındeğişken adlarının arasına virgül koyarız. Fonksiyona ulaştırılandeğerlere argüman denir. Fonksiyon, kendisine bir değerulaştırılmasını beklemese bile içi boş parantez koymamız gerekir. Bunagöre PHP'de fonksiyon şöyle yazılır:
Alıntı
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'ninkendi fonksiyonları kullanılabilir. Şimdi, ilk örnek fonksiyonumuzuyazalı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. Birprogramda bu işi sık sık yapacaksak, yani metinlerimiz <BR> ilebitecek, bazı başlıklarımız ise sayfamıza HTML'in başlık etiketleri ilegönderilecekse, bu etiketleri defalarca yazmamız sadece zorluk değil,fakat aynı zamanda yazım hatasını davet eden bir davranır olur. PHP'dekendisine vereceğimiz metinleri başlık veya gövde yazısı olarakbiçimlendirecek fonksiyonlar tanımlayarak, programcılıkta daimatehlikeli olan insan unsurunu asgarîye indirebiliriz. Şu programıyazdir01.php adıyla kaydederek, Browser'da açın:
Alıntı
<HTML>
<HEAD>
<TITLE>PHP'de Fonksiyon</TITLE>
<meta http-equiv="content-type" ***********"text/html; charset=ISO-8859-9">
<meta http-equiv="Content-Type" ***********"text/html; charset=windows-1254">
</HEAD>
<BODY>
<?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(), veyazdirP() adlarıyla altı fonksiyon tanımladığımızı görüyorsunuz. Bufonksiyonların hepsi kendilerini göreve çağıran satırdan, kendilerinebir değer verilmesini istiyorlar ve bu değeri $metin adlı değişkendetutuyorlar. Fonksiyonlarımız tümü de PHP'nin print() fonksiyonundanyararlanıyor; ancak bu fonksiyonun nasıl kullanılacağını, nasılişletileceğini de belirliyorlar. Buna göre bazı fonksiyonlarımız $metinadlı değişkenin değerini önüne ve arkasına bir HTML etiketi koyarakBrowser'a gönderiyor; birisi ise sadece $metin değişkenin tuttuğudeğ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ınbaş tarafında toplanır ve daha sonra nerede gerekirse orada,çağrılırlar. Fonksiyonları adlarını ve kendilerine verilmesi gerekenbir değer varsa o değeri parantez içinde yazarak çağırırız. Buradaolduğu gibi, fonksiyonu göreve çağırırken parantez içinde değerinkendisini yazabileceğimiz gibi, bu değeri tutan bir değişkenin adını dayazabiliriz. Bu programı çalıştırırsanız, Browser'da bu görüntüyü eldeedebilirsiniz:
Şimdi, bu penceredeki belgenin kaynağını görüntüleyelim. Karşımıza şuna benzer bir metin çıkmış olması gerekir:
Alıntı
<HTML>
<HEAD>
<TITLE>PHP'de Fonksiyon</TITLE>
<meta http-equiv="content-type" ***********"text/html; charset=ISO-8859-9">
<meta http-equiv="Content-Type" ***********"text/html; charset=windows-1254">
</HEAD>
<BODY>
<h1>Bu H1 Başlık</h1>
<h2>Bu H2 Başlık</h2>
<h3>Bu H3 Başlık</h3>
<h4>Bu H4 Başlık</h4>
Bu kendisinden sonra BR olan birinci metin.<br>
Bu kendisinden sonra BR olan ikinci metin.<br>
<p>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.</p>
<p>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.</p>
</BODY>
</HTML>



Bu, bize, oluşturduğumuz bütün fonksiyonların kendilerinden bekleneniyaptığını ve kendilerine verdiğimiz metinleri, tıpkı istediğimiz gibi,arzu edilen HTML etiketleri ile birlikte Browser'a gönderdiklerinigösteriyor.Buradaki fonksiyon, kendisini bir iş yapan türden fonksiyondur. Oysakimi zaman fonksiyonlar, kendilerini göreve çağıran komuta bir değergönderirler. Şimdi de böyle bir fonksiyon örneği yazalım. Aşağıdakikodu, hesapla.php adıyla kaydedin:
Alıntı
<HTML>
<HEAD>
<TITLE>PHP'de Fonksiyon</TITLE>
<meta http-equiv="content-type" ***********"text/html; charset=ISO-8859-9">
<meta http-equiv="Content-Type" ***********"text/html; charset=windows-1254">
</HEAD>
<BODY>
<?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>");
?>
</BODY>
</HTML>
Bu programda, dört aritmetik işlemi yapan dört ayrı fonksiyontanı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, kendisindenbeklenen aritmetik işlemi yaparak, sonucunu $sonuc adlı değişkeneyazıyor. Burada dikkat edeceğimiz nokta, return komutudur. Bukomut, 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:
Alıntı
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ğı birformdan alınabileceği gibi, program tarafından da hesaplanabilir

Bu sayfanın kaynağındaki HTML kodları ise şöyla olacaktır:
Alıntı
<HTML>
<HEAD>
<TITLE>PHP'de Fonksiyon</TITLE>
<meta http-equiv="content-type" ***********"text/html; charset=ISO-8859-9">
<meta http-equiv="Content-Type" ***********"text/html; charset=windows-1254">
</HEAD>
<BODY>
17<br>7<br>60<br>2.4<br>
</BODY>
</HTML>

Fonksiyonlarımız, kendilerinden bekleneni yaparak, gerekenhesaplamanın sonucunu, kendilerini göreve çağıran komuta, buradaPHP'nin print() fonksiyona göndermiş; bu fonksiyon da sadece bu sonuçları Browser'a iletmiş bulunuyor.

Logged
 
Sayfa: [1]   Yukarı git
Yazdır