Yükleniyor

Php'de Fonksiyonların Amacı

Bir kod bloğunu birden fazla kullanmanız gerekebilir. Haliyle oluşturduğunuz kod bloğunu devamlı olarak kullanılan alanlara kopyalamalısınız ve içerisinde bir değişiklik yaptığınız zaman diğer kopyaladığınız alanları da düzenlemelisiniz. İşte fonksiyonlar tam burada devreye giriyor.

Bir fonksiyon tanımlayıp içerisine bir kod bloğu yazdığınızda; bu kod bloğunu fonksiyonun adıyla dilediğiniz yere çağırabilirsiniz. Değişikliklerde zorluk yaşamazsınız ve kodlarınız daha anlaşılır, düzenli olur.

Kısaca çok sık tekrar edeceğiniz kodları paket haline getirip ve bu paketi dilediğiniz yerde çağırma olayıdır.

<?php 
function fonksiyon_adiniz() {
   //yapılacak işlemler (kod bloğunuz)
}
//fonksiyonu çağırma aşağıdaki gibidir.
fonksiyon_adiniz();
?>

Bir örnek vererek daha iyi anlamanıza yardımcı olalım. 1'den 10'a kadar olan sayıları fonksiyon kullanarak ekrana yazdıralım.

<?php 
function birdenonakadar() {
  for($i = 1; $i <= 10; $i++){
     echo $i." ";
  }
}
birdenonakadar(); //fonksiyonu çağırmış olduk. fonsiyon içerisinde direk echo yazdığımız için direk ekran çıktısı verecektir.
//Ekran Çıktısı: 1 2 3 4 5 6 7 8 9 10
?>

Tabi fonksiyonlarda yazdırmak zorunda da değiliz, bize bir işlemi yapıp işlem sonucunu döndürmek içinde kullanabiliriz.

<?php 
function topla() {
  $a = 5;
  $b = 5;
  $c = $a + $b;
  return $c; // diğer kullanım = return $a + $b;
  /*
  return komutu ile istediğiniz sonucu geri fonsiyonu çağırdığınız yere döndürebilirsiniz.
  */
}
echo "5 ile 5'in toplamı = " . topla(); //gördüğünüz gibi burada ekrana yazmasını istedik.
//Ekran Çıktısı: 5 ile 5'in toplamı = 10
?>

Şunu unutmayın fonksiyon içerisinde nerede return yaparsanız return ile döndürdüğünüz değeri döner ve o satırda fonksiyondan çıkar, alt satırlara inmez.

<?php 
function topla() {
  $a = 5;
  $b = 5;
  return $a;
  $c = $a + $b;
  return $c;
}
echo topla(); 
//Ekran Çıktısı: 5
?>
<?php 
function ekranaYaz() {
  echo "Merhaba Dünya";
}
ekranaYaz();
//Ekran Çıktısı: Merhaba Dünya
/*
DİĞER KULLANIM
function ekranaYaz() {
  return "Merhaba Dünya";
}
echo ekranaYaz();
*/
?>

Fonksiyonlara Parametre Ekleme

Diğer Adıyla Fonksiyonlara Değer Gönderme

Fonksiyonlara dilediğiniz parametreyi(değişkeni) gönderebilirsiniz ve varsayılan değerlerde atayabilirsiniz.

<?php 
function fonksiyon_adi($parametre_adi1, $parametre_adi2, $parametre_adi3, .....) {
  //yapılacak işlemler
}
?>

Aşağıdaki fonksiyon gönderilen iki sayının toplamını bulacaktır.

<?php 
function sayilariTopla($sayi1, $sayi2) {
  return $sayi1 + $sayi2;
  /*
   ya da
   $c = $sayi1 + $sayi2;
   return $c;
  */
}
echo sayilariTopla(5, 10); //Çıktı: 15
/*
DİĞER KULLANIM
function sayilariTopla($sayi1, $sayi2) {
  echo $sayi1 + $sayi2;
   ya da
   $c = $sayi1 + $sayi2;
   echo $c;
}
sayilariTopla(5, 10); //Çıktı: 15
*/
?>

Aşağıdaki fonksiyon sayının tek mi çift mi olduğunu bulur.

<?php 
function tekmiCiftmi($sayi) {
  if ($sayi % 2 == 0){
    echo "sayı çifttir.";
  }
  else{
    echo "sayı tektir.";
  }
}
tekmiCiftmi(5); //Çıktı: sayı tektir.
?>

Aşağıdaki fonksiyon gönderilen metnin karakter sayısını bulur.

<?php 
function metinUzunlugu($metin) {
  echo strlen($metin); //strlen() php'nin kendi fonksiyonudur ve herhangi bir metnin karakter uzunluğunu bulur ve int değer döner.
}
metinUzunlugu("Denizli'nin horuzu, tozu, kızı meşhurdur."); //Çıktı: 44
?>

Fonksiyonlara Varsayılan Parametre Verme

Diğer Adıyla Fonksiyonlara Varsayılan Değer Verme

Fonksiyonunuza parametre atamış olabilirsiniz. Ancak bu parametreye her zaman değer göndermeyebilirsiniz. Bu durumda varsayılan bir değer (int, string, double istediğiniz veri türlerini)atayabilirsiniz.

<?php 
function fonsiyon_adi($parametre_adi1 = "varsayilanDeğer", $parametre_adi2 = "varsayilanDeğer", ....) {
  //yapılacak işlemler
}
?>

Hemen bir örnekle daha iyi anlamanızı sağlayalım.

<?php 
function kimGeldi($yetki =  "Kullanıcı") {
   echo $yetki . " geldi";
}
kimGeldi(); // Çıktı: Kullanıcı geldi
kimGeldi("Admin"); // Çıktı: Admin geldi
?>

Varsayılan değer ile iki sayının toplamını bulan fonksiyon;

<?php 
function sayilariTopla($sayi1 = 5, $sayi2 = 10) {
  return $sayi1 + $sayi2;
}
echo sayilariTopla(2); //Çıktı: 12 
//burada sadece $sayi1 değerine veri göndermiş olduk bu yüzden $sayi2 varsayılan değerini aldı.
echo sayilariTopla(); //Çıktı: 15 
//hiç bir değer göndermedik bu yüzden varsayılan değerleri aldı.
echo sayilariTopla(3, 6); //Çıktı: 9
//2 parametreye de değer gönderdik.
?>