PHP Fonksiyonları ile Nasıl Çalışılır? #1

in utopian-io •  7 years ago  (edited)

Ne Öğreneceğim?

  • PHP Fonksiyonları

Gereksinimler

  • PHP 5.4 ve üzeri
  • Linux İşletim Sistemi

Zorluk

  • Orta Düzey

111.png
imagesource

Eğitim İçeriği

Karmaşık ya da uzun programları tek düze halinde yazmak yerine küçük ve basit parçalara bölebiliriz. Buna göre, bir progragramda belirli bir işi gerçekleştirmek üzere hazırlanan küçük program parçalarına fonksiyon adı verilir. Fonksiyonların sağladığı faydaları kısaca aşağıdaki gibi özetleyebiliriz.

  • Tek düze program yazmakta karşılaşılan karmaşıklığı ortadan kaldırır.
  • Tekrarları önleyerek programı kısaltır.
  • Değişiklikleri kısa sürede gerçekleştirme imkânı sunar.
  • Hata durumunda tüm programın değiştirilmesine gerek duyulmaz.
  • Programın daha anlaşılabilir ve okunabilir olmasını sağlar.
  • Ve daha da fazlası...

Fonksiyonlar ile Çalışmak

PHP'de function deyimini kullanarak yeni bir fonksiyon tanımlayabilirsiniz. Fonksiyon isimleri değişken tanımlama kurallarına uygun olmalı ve kullanılması yasaklanan (empty, include, final vb. gibi) isimlerden oluşmamalıdır.

<?php
function fonksiyon_adi ( ) {
#fonksiyonun gerçekleştireceği işlemler
}
#fonksiyonu çağırmak/çalıştırmak
fonksiyon _adi ( );
?>

Burada basit olarak fonksiyonun nasıl tanımlanacağını ifade eden prototip yer almaktadır. Bir fonksiyon çağırılmadığı sürece asla çalışmazlar. Tanımlamış olduğunuz bir fonksiyonu nasıl çalıştıracağınız yine yukarıda belirtilmiştir.

Parametresiz Fonksiyonlar

Parametresiz fonksiyonlar, dışarıdan herhangi bir değişken almadan (global değişkenlere erişim gibi istisnai durumlar hariç) çalışan fonksiyon türleridir. Genellikle arka planda basit işlemleri gerçekleştirmek için kullanılırlar.

<?php
function tarihYaz ( ) {
echo date ("Y-m-d H-i-s") ;
}
tarihYaz ( );
?>

Yukarıda en temel yapı ile parametresiz fonksiyon örneği yer almaktadır. Fonksiyon çalıştırıldığında ekrana şimdiki tarihi ve saati (2018-01-24 01:07:46 gibi) yazar.

Parametreli Fonksiyonlar

Parametresiz fonksiyonlara göre daha gelişmiş kullanım yöntemidir. Fonksiyonlar dışarıdan bazı değerler alır, işlev ve sonuç üretir. Bir fonksiyona bir veya daha fazla parametre alabilir. Parametreler ihtiyaca uygun olarak istenilen veri tipinde kullanılabilir.

<?php
function carpma ($birinci, $ikinci, $ucuncu) {
echo $birinci * $ikinci * $ucuncu ;
}
carpma (1, 2, 3); #ekrana 1 * 2 * 3 = 6 yazılacaktır.
?>

Yukarıdaki fonksiyon, kendisine gönderilen 3 adet integer (tamsayı) tipli değeri çarpma işlemine sokarak sonucu ekrana yazdırıyor. Eğer daha az sayıda değer göndermiş olsaydınız, PHP yorumlayıcısı uyarı hatası oluşturacak ve fonksiyon çalıştırılmayacaktı.

Parametrelere İlk Değer Verme

Bazen parametreli fonksiyonlar kullanılırken, özel durumlarda parametrelere ilk değeri verebiliriz. Eğer kullanıcı ilk değeri verilen parametreyi eksik girmiş ise, bizim ön gördüğümüz değeri alarak işlemini sürdürmeye devam eder.

<?php
function carpma ($birinci, $ikinci, $ucuncu = 5) {
echo $birinci * $ikinci * $ucuncu ;
}
carpma (1, 2); # ekrana 1 * 2 * 5 = 10 yazılacaktır.
carpma (1, 2, 3); # ekrana 1 * 2 * 3 = 6 yazılacaktır.
?>

Örneğin; yukarıdaki fonksiyon yine 3 adet integer değer alıyor. Ama fonksiyon çapırılırken 2 adet gönderilmiş. Dikkat ederseniz fonksiyon tanımlanırken eğer üçüncü değer girilmemiş ise, alması gereken varsayılan değeri 5 olarak belirttik.
Dikkat edilmesi gereken bir nokta ise, parametrelere ilk değerlerin verilmesi sondan başa (sağdan sola) doğru olmalıdır. Aşağıdaki fonksiyonlara ilk değer verilmesi için bazı fonksiyon tanımlamalarının prototipleri yer almaktadır. Örneklerdeki doğru ve hatalı tanımlamaları inceleyelim.

<?php
#Doğru - sondan başa doğru tanımlanmış
function carpma ($birinci, $ikinci, $ucuncu = 5) { }
function carpma ($birinci, $ikinci = 4, $ucuncu = 5) { }
#Hatalı - direkt olarak aradaki değerlere ilk değer verilemez
function carpma ($birinci = 3, $ikinci, $ucuncu) { }
function carpma ($birinci = 3, $ikinci = 4, $ucuncu) { }
function carpma ($birinci = 3, $ikinci, $ucuncu = 5) { }
function carpma ($birinci, $ikinci = 4, $ucuncu) { }
?>

Değer Döndüren Fonksiyonlar

Şimdiye kadar hep fonksiyon içinde gerçekleştirilen işlemin sonucunu ekrana yazdırdık. Fakat fonksiyon içindeki hesaplama sonucuna göre başka bir işlem yapılacaksa ne yapacağız? Fonksiyonlarda return deyimini kullanarak dışarıya işlem sonuçlarını gönderebilirsiniz. Fonksiyonlar nasıl ki her tipte veri alabiliyorsa, dışarıya da her tipte veri gönderebilir.

<?php
function carpma ($birinci, $ikinci, $ucuncu) {
return $birinci * $ikinci * $ucuncu;;
}
$sonuc = carpma (1, 2, 3);
echo $sonuc; #ekrana 1 * 2 * 3 = 6 yazılacaktır.
?>

Yukarıdaki örnekte fonksiyon yine çarpma işlemini gerçekleştiriyor ve sonucu ekrana yazdırmak yerine return deyimi ile geri döndürüyor. Fonksiyondan dönen değeri bir değişkende saklamak için fonksiyon çağırılırken $sonuc değişkenine eşitlendiğine dikakt edin. Böylece fonksiyon işlemi gerçekleştirdikten sonra değerini $sonuc değişkenine yükleyecektir.

Özyinelemeli (Resucursive) Fonksiiyonlar

Özyinelemeli fonksiyonlar, kendi kendini tekrarlayan fonksiyonlara verilen isimdir. 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ılarak koşul sağlanmaya çalışılır. Bu esnada dilediğiniz işlemi fonksiyona yaptırabilirsiniz.

<?php
function faktoriyel ($n) {
if ($n < 1)
return 1;
else
return $n * faktoriyel ($n - 1);
}
echo faktoriyel (5);
?>

Bu örnek ile özyinelemeli olarak faktoriyel hesabı gerçekleştirilmektedir. Örnekteki fonksiyon $n değişkenine girilen değer kadar (n defa) kendini yineleyecektir.

Katkılarından dolayı Sercan Çakır'a teşekkürler.

PHP Fonksiyonları serimizin birinci kısmı bu kadar, bir sonraki yazımızda deyimler ve diziler ile devam edip fonksiyonlar konusunu sonlandıracağız. Okuduğunuz için teşekkürler, iyi çalışmalar.

Seri



Posted on Utopian.io - Rewarding Open Source Contributors

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Thanks

Hey @sedatyildiz I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x