Php Dersleri – Fonksiyonlar

Merhaba arkadaşlar, mobilhanem.com sitemiz için hazırladığımız php derslerimizde bu ders Fonksiyonlar konusuna giriş yapacağız.  Fonksiyonlardan biraz bahsedecek olursak; fonksiyonlar bir işlemi yaptırmak için her defasında aynı kodları kopyala yapıştır yapmak veya kodun okunurluğunu artırmak amaçlı yapmış olduğumuz kod sadeleştirme işlemidir. Örneğin bir sayfada toplama işlemini 10 farklı yerde kulandığımızı varsayarsak her yerde sayi2 = sayi1+sayi3 demek yerine fonksiyonu çağırmak daha mantıklıdır.

Fonksiyonlar

Fonksiyonlar function anahtar kelimesi kullanılarak oluşturulur.  Örnek bir fonksiyon oluşturarak üzerinden konuşalım.

<?php
function fonksiyonAdı($param1,$param2...) {
// fonksiyonun yapacağı işlemler

}

?>

Burada function anahtar kelimesinden sonra fonksiyonun adı ve fonksiyona ait parametreler gelir. Parametre dediğimiz kısım $param1,$param2 şeklinde verdiğimiz değişkenlerdir. Bu değişkenleri istediğimiz kadar verebileceğimiz gibi fonksiyona  parametre vermek zorunda da değiliz.  Daha sonra süslü parantezler içerisine fonksiyonun yapacağı işlemleri yazarak fonksiyonu oluştururuz.

Fonksiyonları geriye bir değer döndüren ve değer döndürmeyen fonksiyonlar olmak üzere ikiye ayırabiliriz.  Geriye değer döndüren fonksiyonlarda değer döndürmek için return anahtar kelimesi kullanılır. örneğin: iki sayının toplamını geriye döndüren fonksiyon:

<?php

function topla($s1,$s2) {
    return $s1+$s2;
}

$sayi1 = 5;
$sayi2 = 10;

echo 'İki sayının toplamı '.topla($sayi1,$sayi);



?>

Burada bahsedeceğimiz en önemli yer fonksiyonun adında verdiğimiz $s1 ve $2 değişkenleri fonksiyona ait değişkenlerdir ve sadece fonksiyon içerisinde kullanılırlar. $sayi1 ve $sayi2 değişkenlerimiz ise bizim asıl değişkenlerimizdir ve fonksiyona parametre olarak bu değişkenleri verdiğimizde fonksiyon çalışırken bu değerler $s1=$sayi1 $s2=$sayi2 olarak arkaplanda değiştirilir.

Fonksiyon örnekleri

1- Ekrana 10 kere merhaba dünya yazan fonksiyonumuzu oluşturalım.

function merhabaDunya($sayi) {
	for($i=1;$i<=$sayi;$i++) {
		echo "Merhaba Dünya <br/>";
	
	}

}

merhabaDunya(10);

2- dortIslem adında bir fonksiyon oluşturalım. Fonksiyonun birinci parametresi sayı1 ikinci parametresi sayı2 ve üçüncü parametresi ise hangi işlem yapılacağı olsun.

  1. topla
  2. çıkar
  3. çarp
  4. böl
  5. diğer değerler için ise geçersiz işlem.
function dortIslem($s1,$s2,$i) {
	switch($i) {
		case 1:
			return $s1+$s2;
		case 2:
			return $s1-$s2;
		case 3: 
			return $s1*$s2;
		case 4:
		return $s1/$s2;
		default:
			return "Geçersiz işlem.";
	
	}

}
$sayi1 = 20;
$sayi2 = 10;
$islem = 5;
echo dortIslem($sayi1,$sayi2,$islem);

Varsayılan Parametreli Fonksiyonlar

Varsayılan parametreli fonksiyonlar bir parametrenin varsayılan olarak bizim belirlediğimiz bir değer olmasını istediğimiz zamanlarda kullanırız. Yukarıdaki örneğimiz üzerinden gidecek olursak mesela biz işlemi varsayılan olarak 1 yapalım ve kullanıcı 3. bir parametre girmezse işlem 1 kabul edilsin.

function dortIslem($s1,$s2,$i=1) {
	switch($i) {
		case 1:
			return $s1+$s2;
		case 2:
			return $s1-$s2;
		case 3: 
			return $s1*$s2;
		case 4:
		return $s1/$s2;
		default:
			return "Geçersiz işlem.";
	
	}

}
$sayi1 = 20;
$sayi2 = 10;
$islem = 5;
echo dortIslem($sayi1,$sayi2);

Fonksiyondaki değişikliklere bakarsanız 3. parametreye $i=1 olarak varsayılan bir değer atadım. Eğer 3. parametre girilmez ise varsayılan olarak değeri 1 olacak. Parametre girersek zaten normal bir fonksiyon gibi çalışmaya devam edecektir.

Recursive Fonksiyonlar

Recursive fonksiyon dediğimiz fonksiyonlar kendi kendini çağıran fonksiyonlardır. Bir fonksiyonun kendi kendini çağırabilmesi (recursive olabilmesi) için 2 temel şart vardır.

1- Kendi kendini çağırması

2- Bu çağırma işleminin bitmesi için bir koşul.

Kafanız karışmış olabilir ama örneğimizi yapınca aklınızda herhangi bir soru kalmayacaktır.

Örnek: 5! i hesaplayan bir recursive fonksiyon yazalım.

Şartlarımız sağlanıyor mu bir bakalım. 5! = 5.4! olduğu için kendi kendini çağırıyor fonksiyonumuz o zaman 1. şartımız sağlanıyor.

5! = 5*4*3*2*1; olduğu için en son 1 değerindeyken sonlandırma şartımız var 2. şartımızda sağlanıyor.

Örneğimiz recursive olarak yazılabilir diyoruz ve kodumuzu yazmaya başlıyoruz.

<?php

function faktoryel($sayi) {
	if($sayi>1)  // sayı 1 den büyükse 1 eksiğinin faktoryelini al. 
		return $sayi*faktoryel($sayi-1); //fonksiyon kendini tekrar çağırıyor
	else 
		return $sayi; // sayı 1 e eşitse de sayıyı döndür. 


}

echo "5! = ".faktoryel(5);
?>

Fonksiyonumuzu anlatacak olursak:

1- 5 değerini aldı fonksiyon 5>1 şartı sağlanıyor ve geriye 5*faktoryel(4) değeri geldi ve faktoryel(4) işlemi başladı.

2- 4 değerini aldı fonksiyon 4>1 şartı sağlanıyor ve geriye 4*faktoryel(3) değeri geldi ve faktoryel(3) işlemi başladı.

3- 3 değerini aldı fonksiyon 3>1 şartı sağlanıyor ve geriye 3*faktoryel(2) değeri geldi ve faktoryel(2) işlemi başladı.

4- 2 değerini aldı fonksiyon 2>1 şartı sağlanıyor ve geriye 2*faktoryel(1) değeri geldi ve faktoryel(1) işlemi başladı.

5- 1 değerini aldı ve geriye 1 döndürdü ve değer 4. adıma gitti

6- fonksiyon 2*1 oldu bu değerde 3. adıma gitti

7- fonksiyon  3*2*1 oldu  bu değerde 2. adıma gitti

8- fonksiyon 4*3*2*1 oldu bu değerde 1. adıma giderek bize 5*4*3*2*1 değerini döndürerek sonucu getirmiş oldu.

Recursive fonksiyonun çalışma mantığını kavrarsanız çok işinize yarar arkadaşlar.

Örnek2: 1 den girilen değere kadar sayıların toplamını veren recursive fonksiyonumuzu yazalım.

Fonksiyonun mantığını  anlatmayacağım yukardaki şekilde siz çözmeye çalışırsanız recursive mantığını da oturtmuş olursunuz.

<?php

function topla($sayi) {
	if($sayi>=1)  // sayı 1 den büyükse 1 eksiğinin faktoryelini al. 
		return $sayi+topla($sayi-1);
	else 
		return $sayi; // sayı 1 e eşitse de sayıyı döndür. 


}

echo "5-1 arası sayıların toplamı:  = ".topla(5);
?>

 

Evet arkadaşlar bir dersimizin daha sonuna geldik.  Bu dersimizin devamı olacak bir sonraki dersimiz olan PHP Dersleri – Fonksiyonlar – 2 dersimizde görüşmek üzere 🙂

 

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm php dersleri için tıklayınız..

 

7

Vehbi Akdoğan

Erzurum Atatürk Üniversitesi Bilgisayar Mühendisliği Mezunu
Web & Android Developer
#erzurumspor

2 Yorum

  • girilen iki sayı arasındaki sayılardan t harfine basıldığında tek sayıları c harfine basıldığında çift sayıları a harfine basıldığında asal sayıları fonksiyon kullanarak bulan ve ekrana yazdıran php programını yazınız.

  • Klavyeden form oluşturularak girilen 2 sayı arasındaki sayıların toplamını, tek ve çift sayıların toplamını bulup farklı bir sayfada ekrana yazdıran programın kodlarını yazınız. php kodları lazım lütfen yardımcı olun

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?