Hoşgeldiniz, Ziyaretçi.Lütfen giriş yapın veya kayıt olun.
E-posta adresinize aktivasyon iletisi gelmediyse lütfen buraya tıklayın.
Eylül 28, 2020, 08:49:19 ÖS


FORUM ŞU AN İÇİN (ÖZEL BÖLÜMLER HARİÇ) TÜM ZİYARETÇİLERE AÇIKTIR.
EMEĞE SAYGI AÇISINDAN ALINTILARIN MUTLAKA KAYNAK GÖSTERİLMESİ RİCA OLUNUR.


Ana Sayfa Ana Sayfa Yardım Ara Giriş Yap Kayıt
+  Hay-NS Yazılım
|-+  WEB TABANLI DİLLER
| |-+  PHP Makaleler
| | |-+  FONKSİYONLAR
| | | |-+  PHP Fonksiyon GENEL TANIM
0 Üye ve 1 Ziyaretçi konuyu incelemekte. « önceki sonraki »
Sayfa: [1] Aşağı git Bu Konuyu Gönder Yazdır
Gönderen Konu: PHP Fonksiyon GENEL TANIM  (Okunma Sayısı 8247 defa)
turkoder
Adnan YILDIZ
Administrator
Onbaşı
*****

Rep Puanı: +0/-0
Çevrimdışı Çevrimdışı

Mesaj Sayısı: 218



WWW
« : Temmuz 23, 2008, 06:49:59 ÖS »

 Fonksiyon Tanımlama ve Çağırma

PHP'de fonksiyonlar function komutu ile oluşturulur.
Tanımladığımız fonksiyon, kendisini göreve çağıracak komuttan, 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:
Kod:
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, örneklerle konumuza geçelim.[/b]

1. Argüman gerektirmeyen fonksiyon :
----------------------------------------------
Örnek:
Kod:
<?php
function merhaba() {
echo 
"MERHABA ben geldim";
}
?>

Kullanımı :
Kod:
merhaba();
Çıktısı :
Kod:
MERHABA ben geldim

2-A. Argümanlı örnekler verelim :
----------------------------------------------------

Kod:
<?php
function yazdir($text) {
echo 
$text;
}
?>

Kullanımı :
Kod:
yazdir("yazdırılması istenen yazı");
Çıktısı :
Kod:
yazdırılması istenen yazı
yazdir() fonksiyonuna eklediğimiz $text değişkeni ile fonksiyona istediğimizi yaptırma olanağına sahip olmuş oluruz.
yani yazdır($text) fonksiyonu ile kardeşim ben $text değişkenine ne yazarsam onu icra et demiş oluyoruz.
kullanımında yazdir("yazdırılması istenen yazı"); "yazdırılması istenen yazı" yazısını $text değişkeni yerine ekrana bas görevini vermiş oluyoruz.  
 

2-B. Argümanlı örnekler (return):
----------------------------
Kod:
<?php
function topla($ilk$ikinci) {
$sonuc $ilk $ikinci;
return 
$sonuc;
}
?>

Kullanımı :
Kod:
echo topla(3,5);
Yazdığınız zaman ekran cıktınız 8 olacaktır.
Burada topla fonksiyonu iki sayısal argüman ile çağrılmalıdır. (6. satır bu durumda bunların 3 ve 5 olduğunu gösterir). Bunlar $ilk ve $ikinci değişkeninde depolanırlar.
topla() fonksiyonu bu değişkenlerdeki değerleri toplayarak sonucu $sonuc ismindeki değişkende depolar.

Yukarıda direk fonksiyonu yazdırarak ekrana basmasını istemiştik.
Oysa burada fonksiyonu kulanırken echo(ekrana yaz) komutunu kullandık.
Çünkü fonksiyonda işlem sonucunu return komutu $sonuc ismindeki değişkene almasını bildirdik.
dolayısıyla ekrana  yazdırmak için echo komutunu kullanmış olduk.

Fakat dikkat dilmesi gereken bir durum var bu değişkenlerin boş olması durumunda fonksiyon görevini yapamaz. 
Bu durumda :
Fonksiyona varsayılan değer verebiliriz :
Buradaki argümanlı ö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
Kod:
<?php
function yazdir ($metin$ne=3) {
echo $metin." ".$ne." gündür yok";
}
?>

Kullanımı :
Kod:
yazdir("Adnan", 5 );
Çıktısı :
Kod:
Adnan 5 gündür yok

Kod:
yazdir("Adnan" );
İkinci argümanı vermedik varsayılandan alacak.
Çıktısı:
Kod:
Adnan 3 gündür yok

Bu örnekte, daha öncekilerden farklı olarak fonksiyonun, beklediği iki argümandan birisini, fonksiyonu tanımlarken verdiğimize dikkat edin: " function yazdir ($metin, $ne=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şken Kapsamı
----------------
Bir fonksiyon içerisinde tanımlanan bir değişken o fonksiyona yerel kalır. Başka bir deyişle o fonksiyon dışında veya diğer fonksiyonlarda kullanılamaz.
Bu, daha büyük projelerinizde ayrı fonksiyonlarda aynı isim ile değişken tanımlamanız durumunda kazayla bir değişkenin içeriğini değiştirmenizi engeller.
Bir fonksiyon içerisinde tanımlanan bir değişken fonksiyon dışında kullanılamaz.
Örnek:
------
Kod:
<?php
function deneme() {
$dene "deneme";
}
echo 
"Sonuç: $dene";
?>

Bu şekilde hazırladığımız dosyamızın çıktısı: "Sonuç:" olacaktır. $dene değişkeninin içerisindeki değer ekrana yazılmayacaktır.

"global" ifadesi ile değişkenlere erişebilmek.
---------------------------------------------
Bir fonksiyon içerisinden başka bir fonksiyon içerisinde tanımlanmış bir değişkene (varsayılan durumda) erişemezsiniz. Bir fonksiyon içerisinde aynı isimle
bir değişken kullanmaya çalışırsanız sadece yerel değişkeni değiştirir veya yerel değişkene erişirsiniz.
Fonksiyon dışında tanımlanan değişkenlere varsayılan durumda fonksiyon içinden erişilmez.
Örnek:
------
Kod:
<?php
$test 
10;
function 
deneme() {
echo 
"Sonuç: $test";
}
deneme();
?>

Yukarıdaki fonksiyonda "deneme" fonksiyonu $test değişkenine erişime sahip değildir. Fonksiyon ekrana basmaya çalıştığında $test boş çıkacaktır.
Bu bizi aynı isimli değişkenler arasında olası hatalardan kurtaran iyi bir şeydir. Fonksiyon dış dünyadan bilgiye gerek duydugunda bunu her zaman isteyebilir.

Duruma bağlı olarak önemli bir değişkene bir fonksiyona argüman olarak aktarmadan erişmek isteyebilirsiniz. Bu noktada "global" ifadesi devreye girer.
Örnek:
------
Kod:
<?php
$test 
10;
function 
deneme() {
global 
$test;
echo 
"Sonuç: $test";
}
deneme();
?>

Bu şekilde çıktımız: "Sonuç: 10" olacaktır. global ifadesi ile $test değişkeni fonksiyonumuzun içerisinde dahil edilmiştir.

"Static" İfadesi ile Fonksiyon Çağrıları arasında Durumu Korumak
----------------------------------------------------------------
Fonksiyon içindeki yerel değişkenlerin kısa fakat mutlu bir yaşamları olur. Olması gerektiği gibi fonksiyon çağırılınca çalışırlar doğarla ve çalışma sonlanınca ölürler.
Buna rağmen durumsal olarak fonksiyona temel bir bellek vermek isteyebilirsiniz. Kaç defa çağrıldığının kaydını bir script tarafından numaralı başlıklar oluşturulması için tutan bir
fonksiyon istediğimizi düşünelim. Bunu elbette global ifadesi kullanarak yapabiliriz.
Kod:
<?php
$sayi 
0;
function 
deneme($text) {
global 
$sayi;
$sayi++;
echo 
"<h1>$sayi$text</h1>";
}
deneme("Merhaba");
echo 
"<p>Merhaba dünya nasılsınız?</p>";
deneme("Bugün Bayram");
echo 
"<p>Bayramı nerede kutlayacaksınız.?</p>";
?>

Yukarıdaki kodları sunucumuazda calıstırdıgımız zaman cıktımız:
Kod:
1. Merhaba
Merhaba Dünya nasılsınız?
2. Bugün Bayram
Bayramı nerede kutlayacaksınız.?
Şeklinde olacaktır.

2. satırdaki $sayi değişkenini global ifadesi ile fonksiyonumuzun içerisine dışarıdan dahil ettik. 4. satırda global ifadesini kullanarak bu değişkeni fonksiyon dışında kullanılabilir hale getirdik.
Her deneme() çağrıldığında $sayi değişkeni değeri artırılır. Daha sonra başlığı artırılan başlık sayısı $sayi ile basabiliriz.
Buna rağmen bu en iyi çözüm değildir. Fonksiyonların global ifadesi kullanılanları tek başına kod blokları olarak okunamazlar. Onları okurken veya yeniden kullanırken, değiştirdikleri değişkenleri
aramaya ihtiyaç duyarız.
Bu "static" ifadesinin kullanışlı olacağı noktadır. Bir fonksiyon içerisinde bir değişkeni static ifadesi ile tanımlarsanız. Bu değişken fonksiyona yerel kalır ve fonksiyon bu değişkenin değerini çalışmadan
çalışmaya hatırlar.

"static" ifadesini fonksiyon çağrıları arasında bir değişkenin değerini hatırlamak için kullanmak:
Örnek:
------
Kod:
<?php
function deneme($text) {
static 
$sayi 0;
$sayi++;
echo 
"<h1>$sayi$text</h1>";
}
deneme("Merhaba");
echo 
"<p>Merhaba dünya nasılsınız?</p>";
deneme("Bugün Bayram");
echo 
"<p>Bayramı nerede kutlayacaksınız.?</p>";
?>

Bu şekilde deneme fonksiyonu tamamen kendisini içerir hale geldi.
3. satırda $sayi değişkenimizi tanımladığımızda ona bir ilk değer atadık. Bu atama 7. satırda fonksiyon ilk çağrıldığında yapıldı.
Bu ilk atama 9. satırda fonksiyon tekrar cağırıldığında göz ardı edildi.
Bunun yerine kod $sayi değişkeninin bir önceki değerini hatırladı.

İki argüman ihtiyaç duyan bir fonksiyon:
----------------------------------------
Kod:
<?php
function font($text$size) {
echo 
"<font size='$size'>$text</font>";
}
font("Merhaba<br>"5);
font("Nasılsınız<br>"3);
?>

Bu fonksiyonun kullanışlı yönü duruma bağlı olarak font boyutunu değiştirebilirsiniz.

İsteğe bağlı argümanlı bir fonksiyon:
-------------------------------------
Kod:
<?php
function font($text$size 3) {
echo 
"<font size='$size'>$text</font>";
}
font("Merhaba<br>"5);
font("Nasılsınız<br>");
?>

Eğer size için bir değer atamazsak bunun yerine varsayılan değer olarak "3" kullanır.

Fonksiyonlara Değişken Referansları Aktarmak:
---------------------------------------------
Bir fonksiyona değer ile argüman geçmek.
Örnek:
------
Kod:
<?php
function add($sayi) {
$sayi += 5;
}
$yenisayi 10;
add($yenisayi);
echo 
$yenisayi;
}
?>

Bu şekilde kayıt edersek dosyamızı çıktımız 10 olacaktır. add fonksiyonumuz bir işlev yapmayacaktır. $yenisayi değişkenini 5 arttırmayacaktır.

Bir fonksyion tanımını bir fonksiyona referans ile argüman aktarmak için kullanmak:
-----------------------------------------------------------------------------------
Örnek:
------
Kod:
<?php
function add(&$sayi) {
$sayi += 5;
}
$yenisayi 10;
add($yenisayi);
echo 
$yenisayi;
}
?>

2. satırdaki $sayi değişkeninin yanına koydugumuz & işareti ile fonksiyona referans ile argüman aktarmamızı sağlar.
Bu şekilde çıktımız 15 olacaktır.
« Son Düzenleme: Temmuz 23, 2008, 08:05:29 ÖS Gönderen: Turkoder (Menderes) » Logged
Sayfa: [1] Yukarı git Bu Konuyu Gönder Yazdır 
« önceki sonraki »
Gitmek istediğiniz yer:  


Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

MySQL Kullanıyor PHP Kullanıyor Powered by SMF 1.1.8 | SMF © 2006-2008, Simple Machines LLC XHTML 1.0 Uyumlu! CSS Uyumlu!
Bu Sayfa 0.037 Saniyede 19 Sorgu ile Oluşturuldu