Php Ders 6 - Fonksiyonlar.

PHP FONKSİYONLARI

Diğer derslerimizde olduğu gibi Fonksiyonlarıda en basit haliyle öğreneceğiz. Fonksiyonlar çoğunlukla işlerimizi daha hızlı yapmak için kullanılır. Hiç Fonksiyon kullanmadan da birçok işlemi yapabilirsiniz. Fonksiyon kullanınca sadece daha hızlı ve daha kolay yaparsınız.

Aşağıda sembolik bir Php fonksiyonu görüyorsunuz:

functionphp

Gerçek hayatta böyle birşey mümkün değildir ama programcılık öğrenmeye başladığınıza göre bu dünyada herşeyin mümkün olduğunu öğrenmeniz gerekir.

Fonksiyonları yaptıkları işe göre iki gruba ayırabiliriz.

1. işlem sonucu çıktı veren fonksiyonlar

2. işlem sonucu dönüş veren fonksiyonlar.

Bunlara iki örnek vererek uygulayalım:

1. Çıktı veren fonksiyonları bu örnekle hemen anlayacaksınız. Ekrana yazdırma işlemi için print kullanıyoruz. ama keşke bu fonksiyon Türkçe olsaydı hem daha kolay hatırlardık hemde yeni başlayanlar zorlanmazdı, o zaman buyrun size Türkçe yazdırma komutu.

function yaz($kelime)
{
     print $kelime;
}


Bu fonksiyonu kullanırken istediğimiz yazıyı parantez içinde yazmamız yeterlidir.

Örnek: 

yaz ( "İşte Php Türkçe oldu" );


Fonksiyon kullanılırken sayfanın başında bir kez tanımlanması yeterlidir. daha sonra sayfanın altında tekrar tekrar onu kullanmak mümkündür.

Şimdi de bir sayının karesini alacağız diyelim:


function kareyaz($sayi)
{
   echo $sayi * $sayi;

}


Bu şekilde bir fonksiyon pratikte pek iş görmez ama anlamanız açısından faydalı olacaktır. Fonksiyon çalıştığında sonucu direkt olarak ekrana yazdırmaktadır. Şimdi de bu örneğe bağlı olarak diğer fonksiyon türüne bakalım:

2. Dönüş Veren Fonksiyonlar: Bu tip fonksiyonlarda bulunan sonuç başka bir işlemde kullanılmak üzere gönderildiği yede döner. bu kısım fonksiyonun esas mantığını anlamanız açısından çok önemlidir.


function karebul($sayi)
{
 
  return $sayi * $sayi
 
}


Fonksiyon içinde herhangi bir yazdırma işlemi yapmıyoruz. Evet bir sonuç buluyor ama bu sonuç nereye gidiyor ? Kullanımı için aynı sayfada aşağıdaki şekilde bir kod yazıyoruz:


$sonuc= karebul(5);


Bu satır çalıştığında karebulma işlemi sonucu bulduğu sonucu $sonuc isimli değişkene aktaracaktır. Daha sonra biz bu $sonuc değişkenini ister yazdırıp istersek başka bir işlemde kullanabiliriz.

Diğer derslerde olduğu gibi bu konuyu da bir ödevle bitirelim: aşağıdaki fonksiyon ekrana ne yazar ?


function hesapla($sayi)
{

   return $sayi * 10;
}


$test=6;

$sonuc=hesapla($test);

$para = $sonuc * 100;

print ($para);

drekon2009-12-24 12:12:03

DMCA.com
Bookmark and Share
Hit:76983
Puan ver:

.

qokoGökhan UÇAR

Tarık bey $test=6 deniyor fakat bu bir fonksiyona gidiyor orada 10 ile carpiliyor. 6x10=60 eder.

$test=60 oluyor.

2012-02-06 04:03:52

kapriskapris leyla

Kafam Karıştı ya :(

2012-02-08 10:23:17

6000...

sabriozsabri öz

güzel anlatmışsınız teşekkürler...

2012-02-16 00:56:47

ozkan_11Ali ÖZKAN

aynen 6000 bende buldumsmiley

2012-06-20 17:45:39

Zuhahaha

serihackerBy Hackerman

function hesapla($sayi) // $sayi degişkeninin degeri yok bu bir
{

   return $sayi * 10; // olmayan deger döndürülüyor bu  iki
}


$test=6; // $test de deger verılıyor bu üç

$sonuc=hesapla($test); // verilen deger hesapla dizininin içinde bu dizin dekiler $Sonuc degıskenıne aktarılıyor bu dört

$para = $sonuc * 100; // aktarılan deger 6*100 ile çarpılıyor bu beş

print ($para); // Çarpılan deger $para degıskenıne aktarlıyor ve yazdırılıyor buda 6 yani  ''600''   smiley ögrenemeyenler pm smileyatsın bu 7 smiley

2012-07-16 02:55:10

Zuhahaha

serihackerBy Hackerman

function hesapla($sayi) // $sayi degişkeninin degeri yok bu bir
{

   return $sayi * 10; // olmayan deger döndürülüyor bu  iki
}


$test=6; // $test de deger verılıyor bu üç

$sonuc=hesapla($test); // verilen deger hesapla dizininin içinde bu dizin dekiler $Sonuc degıskenıne aktarılıyor bu dört

$para = $sonuc * 100; // aktarılan deger 6*100 ile çarpılıyor bu beş

print ($para); // Çarpılan deger $para degıskenıne aktarlıyor ve yazdırılıyor buda 6 yani  ''600''   smiley ögrenemeyenler pm smileyatsın bu 7 smiley

2012-07-16 02:55:10

qenruTurhan Onur Döğücü

6000

2012-08-17 21:48:40

işin mantığı

A.SelcukAlican Selçuk
Yazan:serihacker

function hesapla($sayi) // $sayi degişkeninin degeri yok bu bir
{

   return $sayi * 10; // olmayan deger döndürülüyor bu  iki
}


$test=6; // $test de deger verılıyor bu üç

$sonuc=hesapla($test); // verilen deger hesapla dizininin içinde bu dizin dekiler $Sonuc degıskenıne aktarılıyor bu dört

$para = $sonuc * 100; // aktarılan deger 6*100 ile çarpılıyor bu beş

print ($para); // Çarpılan deger $para degıskenıne aktarlıyor ve yazdırılıyor buda 6 yani  ''600''   smiley ögrenemeyenler pm smileyatsın bu 7 smiley

Yanlış hesap. Doğrusu:

Kodları satır sırasına göre 1 den başlayarak okuyoruz. 1 den başlayıp okurken eğer bir kodda değer verilmemişse o kodu hesaplamadan atlıyoruz. Daha sonraki satırlarda o koda bir değer geliyor ve o değeri önceden değer olmadığı için atladığımız satıra yerleştiriyoruz. Şu şekilde:

1. Satırımız


function hesapla($sayi)
{
return $sayi * 10;
}

Bu kodda fonksiyonumuz hesapla($sayi) fakat $sayi değişkenine bir değer verilmemiş yani boş değişken olarak sonradan doldurulması için bırakılmış. Bu satırı hiç bir işlem yapmadan geçiyoruz daha sonra geri döneceğiz.

1. satır dedin 3 satır var orda nasıl iş diyorsanız, satır mantığını şu şekilde düşüne bilirsiniz;

function hesapla($sayi)
{

   return $sayi * 10;
} 

satırı aslında 

function hesapla($sayi) { return $sayi * 10; }

ile aynı şeydir sadece fonksiyon değer veya echo kodlarının aralarında boşluk brakarak baktığınızda neyin nerede olduğunu daha rahat görebilmeniz için üstteki gibi yazılmaktadır. Sonuç olarak tek satırdır ve 1. yada 2. kod bölümündeki gibi yazılmaları arasında hiçbir fark yoktur.

2. Satırımız 

$test=6; 

Bu satırda $test diye bir değişken belirleyip bu değişkenede 6 değerini atamışız. Yani $test değişkeni 6'ymış. Dahada kısası $test gördüğümüz yere 6 yazıyoruz bundan sonra.

Bu ödevle alakası yok ama belirteyim, eğer sonraki satırlarda $test değişkenine başka bir değer verilirse en son hangi değer verildiyse değişken odur. Başta söylediğim gibi 1 den başlayıp bakıyoruz satırlara ve her zaman sonraki satır baz alınıyor.

3. Satırımız 

$sonuc=hesapla($test); 

Bu satırda $sonuc diye bir değişken oluşturulmuş ve sonuç değişkenine hesapla($test); değeri atanmış. Tamam iyi atanmışta bu değer nedir?

İlk satırı boş bırakmıştık ya hani değeri yok diye şimdi ilk satıra tekrar bakıcaz. Bakma sebebimiz ise $sonuc değişkenine atanmış hesapla fonksiyonu.

ilk satırımızda function komutuyla bir fonksiyon oluşturmuştuk ve bu foksiyonun adını hesapla yapmıştık ve bu fonksiyonumuzada parantez içinde $sayı değerini atamıştık. Şimdi bunun tam olarak çalışma mantığını şu şekilde açıklayabiliriz.

function hesapla($sayi) 

Yukarıdaki kod bizim fonksiyonumuz. Fonksiyon dediğimiz şey nedir peki? Adındanda belli olduğu gibi fonksiyon=işlev yani bir iş yapacak komut.

function kodunu yazdık ve bir iş oluştu ardından bunun yanına o işe vereceğimiz adı yazıyoruz. function hesapla yani Türkçe düşünürsek hesapla işi. Php ye bir iş yapacağını söyledik işe bir isimde koyduk ama işin neyle ilgili olduğunu söylemedik. Sıra işin neyle ilgili olduğunu söylemeye geldi.

function hesapla($sayi) 

İş yapmasını söyledik işin adını koyduk ve $sayi değişkenini yazarak işin $sayi değişkeninin değeriyle ilgili olduğunuda belirttik. Artık php nin ondan ne istediğimiz hakkında bir fikri oldu. Fakat neyle ilgili olduğunu söylemek yetmiyor tabi. Bunada şöyle örnek verebiliriz. "Ahmet sana bir iş vericem bu işin adı hesaplama ve sana vereceğim sayı değerini hesaplayacaksın" demek gibi. Ama nasıl hesaplayacağını ve hesapladıktan sonra çıkan sonucu ne yapacağını söylemedik daha. Onlarıda aşağıdaki kodlarda söylüyoruz;

function hesapla($sayi)
{

   return $sayi * 10;
}

Burda php ye sayı yı hesapla hesapla hesaplamayıda 10 ile çarpma olarak yap ve çıkan sonucuda gösterme sadece sakla diğer kodlarda ben o sonucu kullanıcam.

Bunuda şu şekilde söylüyoruz;

$sayi * 10 sayi değişkenini al 10 ile çarp diyoruz

return komutunu bu hesaplama işinin başına yazarak bu hesaplamanın sonucunu kimseye gösterme sadece bi yere not et sonraki işlemlerde kullan diyoruz.

return kodu echo yada print koduyla aynı şekilde kullanılıyor tek farkı echo ve print kodları işlemin sonucunu hesapladıktan sonra ekranda gösterirken return kodu hesaplıyor ama göstermiyor aklında tutuyor.

Şimdi fonksiyonun çalışma mantığını kavradığımıza göre şu soruyu sorabiliriz yahu tamam anladıkta hala $sayi değişkeninin değeri yok biz neyi hesaplıyacağız?

Demin fonksiyonu anlatırken isim vermiştik hesapla diye ve yanına parantez içinde $ sayı değerini yazmıştır. Orda yazan değer sabit bir değer değil. Bizim fonksiyonumuzun adı hesap olduğu için sabit olan şey fonksiyonun ismi yani siz ilk satırda hesapla($sayi) yazdıysanız bile daha sonraki satırların herhangi birinde hesapla fonksiyonuna başka değer verirseniz artık hesapla fonksiyonununda kullanılacak değer en son verdiğinizdir. Biz 3 satırda yazdığımız kod ile hesapla fonksiyonunun değerini değiştirmiş olduk. 3. satırda hesapla değilde başka bir fonksiyon ismi kullansaydık değer değişmeyecekti.

$sonuc=hesapla($test);

hesapla($test); kodu ile artık hesapla isimli fonksiyonumuz $sayi değişkenini değil $test değişkenini baz alarak hesaplama yapacak demektir. Kodun başında yazan $sonuc= kodunun anlamı ise sen hesapla fonksiyonunu çalıştır çıkan değeride $sonuç değişkenine ata demektir.

4. Satırımız

$para = $sonuc * 100; 

Yazan satırımızda sıra. Bu satır 2. satırımızdaki $test=6; kodu ile aynı şey sadece burda $para değişkenine direk bir değer atanmak yerine sen $sonuc değişkenini hesaplayıp değerini bul sonrada onu 100 ile çarp çıkan sonucu değer olarak al denmiş. Yani $para değişkenin temsil ettiği sayı $sonuç değişkeninin temsil ettiği sayının 100 ile çarpımı.

5. Satırımız 

print ($para); 

Geldik son satırımıza görüldüğü gibi çok basit bir satır print komutu kullanarak $para değişkeninin temsil ettiği sayıyı ekranda kullan demişiz buradada. prin yerine isterseniz echo da kullanabilirsiniz ikiside aynı şey

Şimdi hangi satırda ne denmiş fonksiyon nedir mantıklarını kavradığımıza göre GELELİM İŞLEME:

Kod şeklinde verilen matematik işlemimizdeki kilit nokta 3. satırdaki hesapla($test) komutu. Bu komut hesapla fonksiyonuna verilen değişkeni değiştiriyor yani hesapla fonksiyonunu gördüğümüz yerlerdeki değişken değerlerini $test değişkeninin değeri olan 6 ile değiştiriyoruz.

function hesapla($sayi)
{

   return $sayi * 10;
}


$test=6;

$sonuc=hesapla($test);

$para = $sonuc * 100;

print ($para);
function hesapla(6)
{

   return 6 * 10;
}


$test=6;

$sonuc=60;

$para = 60 * 100;

print ($para); 6000

Burdaki püf noktalardan biri 1. satırdan itibaren bakma mantığı ve sonraki satırlarda değişkenlerin değerleri değişiyorsa değişen değeri alıp işleme devam etmeden en baştan işlemi değişkenin son değerine göre yeniden yapmak. Burda $test değişkeninin değeri olan 6 yı $sayı değişkenine aktardık ardından 1. satırdaki fonksiyon işlemini yaptık ve hesapla fonksiyonunun değerini 60 olarak bulduk. return kodu 60 sayısını bize göstermeden aklında tuttu ve 3. satırdaki $sonuc=hesapla($test); kodumuzda hesapla fonksiyonu yerine 60 sayısını yerleştirdi. bu sayede $sonuc değişkeninin değeri 60 oldu. Php işlemin 4. satırına geldiğinde 60 olarak bulduğu değeri $sonuc değerine 60 olarak atadı ve 100 ile çarptı. Bu çarpımdan çıkan 6000 değerinide $para değişkenine atayıp son satırda print komutuyla bize gösterdi. 

Php kodundanda (<?php?>) belli olduğu gibi php de sabit değer yok sürekli duruma göre değişiyor sürekli karşınıza ? leri çıkıyor onun için önce işin mantığını anlamanız lazım.

Umarım yeterince anlaşılır açıklayabilmişimdir. Bende burdakilerin çoğu gibi php yi ilk defa bu siteden öğreniyorum. Anlayamayan arkadaşlara tavsiyem https://phpkodlari.com/php-dersleri/ linkine girip dersleri sırayla okusunlar. Hocamız sağolsun gayet anlaşılır ve akıcı anlatmış. Ama sırayı bozduğunuzda kafa karışabiliyor. Bu 6. ders ve eminimki anlamayan arkadaşlar önceki 5 dersi sırasıyla takip edip her dersteki kodları kendilerine göre değiştirerek yazarak pratik yaparlarsa işin mantığını kolayca kavrayabileceklerdir.

NOT: bulduğunuz cevabın doğruluğu kontrol etmek için verilen soruyu kopyala yapıştırla php sayfası haline getirin ve herhangi bir sunucuda çalıştırın cevap karşınıza çıkacaktır. Sunucu localde olabilir hiç fark etmez.

2012-09-23 14:54:02 Edit:2012-09-23 15:25:06

vedatdiyarVedat Diyar Çelikkeser

Çözüm şu şekilde:


function hesapla($sayi) { return $sayi * 10; }

şimdi bu kodda $sayi değişkenini return ile 10 ile çarpıyor. Fakat daha birşey yok ortada...


$test=6; $sonuc=hesapla($test); $para = $sonuc * 100; print ($para);

Burada ise $test adlı bir değişken oluşturup "6 " değerini veriyor. $sonuc'a hesapla (*10) ve $test (6) yı ekliyor böylece $sonuc=*10*6 olur yani $sonuc =*60 olur. Birde Bunu 100 ile çarpuna 100*60=6000 olur Cevap 6000

2012-11-01 20:06:50

veysimert can

yani 6*100 sonuc 6000 olur...

2013-03-20 19:27:46

phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro