PHP Fonksiyonlar

Fonksiyon, belirli sayıda verileri kullanarak bunları işleyen ve bir sonuç üreten komut grubudur. Her fonksiyonun bir adı ve fonksiyona gelen değerleri gösteren parametreleri (bağımsız değişkenleri) vardır. Her fonksiyonda parametre olması zorunlu değildir. Parametresiz fonksiyonlar, adından da anlaşılacağı gibi herhangi bir parametreye gerek duymadan ve fonksiyonda tanımlanan kodların yerine getirilmesi ile çalışan fonksiyonlardır.

Fonksiyonlar programcılar için önemlidir. Çünkü tekrar tekrar yazmamız gereken kodları fonksiyonlaştırıp kullanarak hem kod yapısını azaltma, hem hızdan hem de zamandan kazanıyoruz. Aşağıda ki şekil fonksiyonların çalışma prensibini gösteriyor.

php fonksiyon

Yerleşik Fonksiyonlar


Yerleşik fonksiyonlar, PHP kurulum paketinde bulunan fonksiyonlardır.

Bu yerleşik fonksiyonlar PHP web programlama dilini çok verimli bir betik dili yapan özelliktir.

Yerleşik fonksiyonlar birçok kategoride sınıflandırılabilir. Aşağıdaki kategorilerin listesi.

Metin Fonksiyonları


Bunlar, Metin verilerini işleyen Fonksiyonlardır.

Sayısal Fonksiyonlar


Sayısal fonksiyonlar, sayısal sonuçlar veren fonksiyonlardır.

Sayısal php fonksiyonu sayıları biçimlendirmek, sabitleri döndürmek, matematiksel hesaplamaları yapmak vb. İçin kullanılabilir.

Tarih Fonksiyonu


Tarih fonksiyonu, Unix tarih ve saatini ziyaretci tarafından okunabilir biçime biçimlendirmek için kullanılır.

Diğer fonksiyonlar

Neden Kullanıcı Tanımlı Fonksiyonları kullanıyoruz ?


Kullanıcı tanımlı fonksiyonlar ne zaman kullanışlı olur.

Tüm bu fonksiyonları oluşturmak, PHP'yi güçlü bir betik dili yapan özelliklerden biridir.

Kullanıcı tanımlı ilk fonksiyonlarımızı oluşturmadan önce, kendi fonksiyonlarımızı oluştururken izlememiz gereken kurallara bakalım.

PHP Kullanıcı Tanımlı Fonksiyonlar


Yerleşik fonksiyonlara ek olarak PHP, kendi fonksiyonlarını tanımlamanıza da olanak sağlar. Belirli görevleri yerine getiren ve ayrıca ana programdan ayrı olarak saklanıp bakımı yapılabilen yeniden kullanılabilir kod paketleri oluşturmanın bir yoludur. Fonksiyon kullanmanın bazı avantajları:

Fonksiyon Tanımlama

Özel bir fonksiyonun oluşturmanın temel sözdizimi aşağıdaki örnekle sağlanabilir:


function fonksiyonismi() {
   //kodlar buraya yazılacak
}	

Kullanıcı tanımlı bir fonksiyonun bildirimi "function" kelimesi ile başlar ardından oluşturmak istediğiniz fonksiyonun adı parantezler ile devam eder () ve sonunda fonksiyonunuzun kodunu küme parantezleri arasına yerleştirin { }.

Parametresiz basit bir fonksiyon örnek verelim.


<?php

function mesaj() 
{ 

echo "merhaba PHP dünyası "; 

} 

mesaj();  //fonksiyon çağrılıyor

mesaj();  //fonksiyon çağrılıyor

?> 	


Yukarıda örnekte mesaj fonksiyonumuz iki kere çağrıldı. Ekrana iki kere "merhaba PHP dünyası" yazacak.

Parametre ve Argüman Kavramı

Fonksiyon bildiriminde, fonksiyona girdi olarak, kullanılan değişkenlere parametre denir. Argüman ise fonksiyon çağrılırken gönderilen değere(lere) verilen addır. Bunun yanısıra fonksiyonlarda argüman kullanma zorunluluğu yoktur.


<?php

// Fonksiyon bildiriliyor  

function topla($x,$y) // Burada x ve y parametre
   {
     return ($x+$y);
   }
    
//Fonksiyon çağrılıyor 
  
$t = topla( 7,3 ); // Burada 7 ve 3 argüman

?> 	

Argümanların giriliş sırası ( 7,3 )'e göre parametre değer sırasıda aynı sırayla görünmesi gerekir. "x=7" atanır ve "y=3" atanır unutmayın.


<?php

function okul ($ad,$sinif)

{

echo "Hoşgeldiniz  $ad - $sinif";

}
okul("Ahmet","9/B");

?> 	
	

Neden Fonksiyonlar ?


Farklı Argümanlar ile aynı kodu birçok kez kullanabilirsiniz, ve farklı sonuçlar elde edersiniz.


<?php

function derece($fah) {
 
    $c = (5/9) * ($fah-32);
    return $c;
}

echo derece(50)."<br>"; // 10

echo derece(80); // 26.6

?>


Değer Döndürme


Hazırladığımız foksiyonun bazı durumlarda geriye değer döndürmesi gerekebilir. Bu durumda fonksiyon değer döndürmesi için return ifadesi kullanılır. Değer, diziler ve nesneler dahil olmak üzere herhangi bir türde olabilir.

Yukarıda ki örneklerimizde sonuçları echo komutu ile ekrana yazdırılmıştır. Direk ekrana yazdırmak yerine sonuçları istediğimiz gibi istediğimiz yerde işleme koymak isteyebiliriz.


<?php

function carp($sayi1, $sayi2)
{
	return $sayi1 * $sayi2;
}
echo carp(5,8) + carp(2,10) * carp(2,5); // 240

?>


Yukarıda ki örnekte görüldüğü gibi return ile dönen değeri istedeğimiz biçimde kullanıyoruz. Yani dönen değeri tekrar işleyebilir, yada direk echo komutu ile ekrana yazabiliriz.

Aşşağıda ki örnekte iki tane return ifadesi kullandık. fonksiyonu bölme işlemi yapmak için kodlar oluşturuldu. Bölme işlemlerde sıfır sayısı verildiğinde hataya neden olacağından fonksiyona sıfır değeri parametre olarak girilip, girilmediğini kontrol edip sıfır döndürüyoruz.


<?php

 function bolme($sayi1,$sayi2)
{
   if($sayi1==0 || $sayi2==0) return 0;

   return($sayi1 / $sayi2);

}
echo bolme(15,3)."<br>"; //5

echo bolme(5,0);  //0

?>

Birden fazla kullanılan return ifadelerinde ilk gerçekleşen return değer döndürecektir ve kod akışı bu ifadeden itibaren duracaktır, yani kodun akışı bu ifade ile duracaktır. Diğer return ifadelerine geçmez.

Varsayılan Değer


İsteğe bağlı parametrelere sahip fonksiyonlar da oluşturabilirsiniz - sadece parametre adını, ardından eşittir (=) işaretini ve ardından aşağıdaki örnekte ki gibi varsayılan bir değeri girin.


<?php
// Fonksiyonu Tanımla
function customFont($font, $size=1.5){

 echo "<p style=\"font-family: $font; font-size: {$size}em;\">

 Merhaba Dünya!</p>";
}
 
// Fonksiyonu çağır

customFont("Arial", 2);

customFont("Times", 3);

customFont("Courier");
?>	

Gördüğünüz gibi üçüncü çağrı customFont() ikinci argümanı içermiyor. Bu PHP motorunun $size=1.5 olan parametre için varsayılan değeri kullanmasına neden olur .

Dizi Değer Döndürme



<?php

function dizi()
{
	return ["Kitap", "Müzik", "Bilgisayar"];
}
list($a, $b, $c)=dizi();

echo "$c kullanırım, $a okurum, ve $b dinlerim";

?>	

ÇIKTI:

Bilgisayar kullanırım, Kitap okurum, ve Müzik dinlerim

ÖRNEK:


<?php

function dizi()
{
	$arr=["Elma", "Çilek", "Kiraz"];

	return $arr;
}
$dizi=dizi();

echo $dizi[2] // Kiraz

?>	

ÖRNEK:


<?php

function isim(){

	return["a"=>"masa", "b"=>"bisiklet", "c"=>"araba"];
}
$dizi=isim();

echo $dizi["a"]; // masa

?>	

İç İçe Fonksiyon


ÖRNEK:


<?php

function topla($a,$b)
{
	function carp($a,$b)
	{
       echo "çarpma sonucu..:".($a*$b);
	}
	  echo "Toplama sonucu:".($a+$b);
}
topla(8,14); //22 

carp(8,3);//24

?>
	

ÖRNEK:


<?php

function topla($a,$b)
{
	function carp($a,$b)
	{
       echo "çarpma sonucu..:".($a*$b);
	}
	  echo "Toplama sonucu:".($a+$b);

	carp(8,3);
}
topla(8,14);

?>
	
	

Global Anahtar Kelime


Fonksiyonlar dışarıdan bir değişkeni kabul etmezler. Kabul etmesi için global ifadesi kullanılır.


<?php

$x=10;

function topla($y)
{
   return $x + $y;
}

topla(5) // Undefined variable

?>
	

Yukarıda ki örnekte fonksiyon dışındaki $x değişkeni fonksiyon içinde kullanmak istiyoruz. Fonksiyonu çalıştırdığımızda toplam 15 yerine $x değişkeni tanımsız uyarası yapacak.

Global ifadesi ile dışarıdaki bir değişkeni fonksiyon içerisinde kullanabiliriz.


<?php

$x=10;

function topla($y)
{
   global $x;
   return $x + $y;
}

echo topla(5) //15
?>
	

Global ifadesi ile birden fazla değişkeni aralarına virgül koyarak tanımlarız.


<?php

$x=10; $y=5;

function topla()
{
	global $x , $y;
	return $x + $y;
}

echo topla() //15

?>
	

Özyineleme (recursive) Fonksiyonlar


Özyinelemeli bir fonksiyon, bir koşul yerine getirilinceye kadar kendini tekrar tekrar çağıran bir fonksiyondur. Fonksiyon içerisinde oluşturulan koşul sağlanana dek, fonksiyon sürekli olarak kendini çağırır. Genellikle parametreli fonksiyonlar ile kullanılır ve fonksiyon her çağırıldığında parametre koşula bağlı olarak artırılarak veya azaltırılarak koşul sağlanmaya çalışılır. Bu esnada dilediğiniz işlemi fonksiyona yaptırabiliriz.

Özyinelemeli fonksiyonlar genellikle karmaşık matematiksel hesaplamaları çözmek veya derin yuvalanmış bir dizinin tüm öğelerini yazdırmak gibi iç içe geçmiş yapıları işlemek için kullanılır.

Aşağıdaki örnek, özyinelemeli bir fonksiyonun nasıl çalıştığını gösterir.


<?php

function faktoriyel ($i)
{
  if($i < 1)
   return 1;
  else
  return $i * faktoriyel($i-1);
}
echo faktoriyel(5); //120

?>

Fonksiyonlarda Referans


PHP prğramlama dilinde fonksiyonlara argümanları iletmenin iki yolunu destekler. Varsayılan yol, bağımsız değişkenleri değere göre iletmektir. Değerlere argümanları ilettiğimizde, fonksiyon yalnızca değerlerin kopyalarıyla çalışır. Bu, büyük miktarda veriyle çalıştığımızda genel performansa neden olabilir.

Argümanları fonksiyonlara referans olarak aktarmak mümkündür. Bu, değişkene bir referansın, değişken değerinin bir kopyası yerine fonksiyon tarafından Değiştirildiği anlamına gelir.

Bütün değişkenler için referans tanımı yapılabilir. Fonksiyonlarda, dizilerde, nesnelerde gerektiğinde referans kullanımına başvurabilir. Değişkenler için örnek verelim.

ÖRNEK:


<?php

$x = "Merhaba Dünya";	

$y = &$x;

echo $x;

echo $y;

?>

Örneğimiz "Merhaba Dünya", "Merhaba Dünya" şeklinde çıktı verecektir. Burada $x değişkenin değeri $y değişkenine ampersand (&) ile referans olarak atadık $x ne ise $y'de odur $y ne ise $x 'de odur. Yani $x değişkeni $y değişkenin adresi tutar.


<?php

$x = "Merhaba Dünya";

$x = &$y;

$y = "Merhaba PHP Dünya";

echo $x;

echo $y;

?>	

Örneğimizde ekrana iki kez "Merhaba PHP Dünya", "Merhaba PHP Dünya" yazar. Görüldüğü gibi $y değişkeninde değer değişmesi, $a değişkenin değerinin değişmesi demektir, yani değer değişikliği her ikisi içinde geçerlidir. Bu duruma referans denir. Eğer değişkenlerden birisini yok edersek diğerinin değeri bu durumda değişmeyecektir yani referans ortadan kalkacaktır.

ÖRNEK:

Aynı örnekte $x değişkeninin değerini unset() fonksiyonu ile yok edelim Bu işlem sonucunda $y değişkenin değeri değişmeyecektir.


<?php

$x = "Merhaba Dünya";

$y = &$x;

unset($x);

echo $x;

echo $y;

?>	

Örneğin Çıktısı "Merhaba Dünya" olacaktır. Yani $y değişkeni $a değişkenine artık bağımlı değil (referans artık yok) ve tek başına bir değişkendir. Bir fonksiyon içinde referans kullanımı benzer biçiminde çalışır.

Normalda şartlarda, fonksiyonlara değişkenlerin referansları değil, değerleri gönderilir. Eğer bir fonksiyona değişkenin referansı gönderilir ve fonksiyon içinde bu değişkenin değeri değiştirilirse, fonksiyon dışında ki değişkeninde değeri değiştirilmiş olur. Bir fonksiyona değişkenin referansını göndermek için değişkenin başına ampersand (&) işareti yerleştirilir.


<?php

function referans(& $sayi)
{
  $sayi = 9;
}
$sayi = 4;

referans($sayi);

echo $sayi;

?>

Ekranda 9 yazar. Referans fonksiyonunun parametresinde kullandığımız referans nedeniyle o parametreye yüklenen değişkenin değeri fonksiyon içinde değiştirmemizle değişecek. Burada da fonksiyon içinde parametreye 9 atadık dışarıdaki değişkeninde değeri 9 olmuş oldu.

Lütfen konu haricinde soru sormayın cevaplanmayacaktır. Yorumunuz onaylandıktan sonra yayınlacaktır.

9305

KATEGORİ
  • HTML
  • CSS
  • PHP
  • JQUERY
  • PHOTOSHOP
  • JavaScript
  • Web Dünyası
  • Linux
POPÜLER MAKALE
  • HTML LİNK(Bağlantı)EKLEME - LİNK VERME
  • HTML RESME LİNK VERME
  • HTML YAZI VE RESİM ORTALAMA
  • HTML FORM OLUŞTURMA
  • HTML DİV ve SPAN NEDİR?
  • HTML KAYAN RESİM VE Marguee KULLANIMI
  • HTML ARKAPLANA MÜZİK EKLEME
  • CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
  • HTML RESİM EKLEME
  • PHP ceil()-floor()-round() YUVARLAMA FONKSİYONU
ETİKET
WEBCEBİR © 2013 Tüm hakları saklıdır.