PHP Class Üzerinde Parametreli Fonksiyonlar
Hepinize merhaba dostlarım :). Bu yazımda sizlere daha önce anlattığım PHP de Class (OOP) işlemlerinde yeri geldiğince kullanılan ve kullanımı bir o kadar da basit olan olaydan yani parameteli fonksiyondan bahsedeceğim :). PHP de Class (OOP) yazısını okumayan dostlarım için link bırakıyorum
https://blog.mfsoftware.net/yazi/php-de-class-ve-nesne-kavrami
linki ile parametreli fonksiyonlar yazıma ulaşabilirsiniz :). Sözü daha fazla uzatmadan gelelim parametreli fonksiyon kullanımına ama önce kısa ve öz tanımlama yapalım :).
Parametreli Fonksiyon Nedir ?
Dostlarım mantıksal bir açıklama yapmak gerekirse parametreli fonksiyon çalıştırılması için dışarıdan değer alması zorunlu bir fonksiyondur :). Mantıksal bir örnek yapacak olursak bir arabanız olsun. Arabanın çalışması için benzin ve akünün olması lazım :). İşte parametreli fonksiyon da bu şekilde çalışır dostlarım :). Gelin sizinle bir Araba isimli class oluşturalım ve bir parametreli method atayalım. İsmi audi_rs7 olsun :). Benzin ve akü parametresi alsın :)
<?php
class Araba{
public function audi_rs7($benzin,$aku){
}
}
?>
Evet dostlarım bu şekilde fonksiyonumuzu oluşturduk :). İçerisinde ufak da bir işlem yaptıralım :). Akü durumu 10 dan büyük ise benzini kontrol etsin :). Benzin de 10 dan büyük ise araba çalışsın :). Benzin değeri 10 dan küçük ise araba çalışmasın. Akü durumu da 10 dan küçük ise araba çalışmasın. Gelin bunu hızlıca yazalım
<?php
class Araba{
public function audi_rs7($benzin,$aku){
if($aku>=10){
// aku 10 dan büyük ise
if($benzin>=10){
// benzin 10 dan büyük ise
echo "Araba Çalıştı";
}else{
// benzin 10 dan küçük ise
echo "Araba Çalışamaz. Benzin yok";
}
}else{
// aku 10 dan küçük ise
echo "Araba Çalışamaz. Akü gerekiyor";
}
}
}
?>
Evet dostlarım :). Gelin şimdi yazdığımız class yapısında özellikle parametreli fonksiyonu nasıl yazacağımızı inceleyelim :). Olay basit dostlarım hiç zor falan diye kafanıza takmayın :). Örnek olarak benzin değerini 20, akü değerini 40 olarak gönderelim.
<?php
$araba = new Araba(); // nesne oluşturduk
$araba->audi_rs7(20,40); // nesne altından parametrelere eriştik :)
?>
Class tan nesnemizi oluşturduk ve parametrelerimizi gönderdik dostlarım :). Ekranımıza gelen sonuç ise
Araba Çalıştı
olacaktır :). Siz değerli dostlarımın aklında ufak bir soru oluştu şimdi hissediyorum :).
Parametre göndermezsek nasıl bir hata ile karşılaşırız acaba ?
Güzel soru dostlarım :). Çünkü hatayı görerek bu işlemi kavramanız sizler için çok güzel olacaktır :). Gelin onu da deneyelim
<?php
$araba = new Araba(); // nesne oluşturduk
$araba->audi_rs7(); // nesne altından parametrelere eriştik :). Ama parametre göndermedik
?>
evet dostlarım bu şekilde hiçbir parametre göndermeden yazalım :). İşte bizi aşağıdaki hata karşılayacaktır
Uncaught ArgumentCountError: Too few arguments to function Araba::audi_rs7()
0 passed
exactly 2 expected
dostlarım hata mesajını gördünüz :). Hatada diyor ki "Dostum sen bu fonksiyona 2 adet zorunlu parametre tanımlamışsın :). Ama ikisini de girmemişsin. Bunları gir :)."
biz bunu istersek zorunlu yapmayabiliriz dostlarım :). Onu da aşağıdaki gibi ayarlayabiliriz
<?php
class Araba{ // zorunlu olmaması için "" dedik yani gelmezse null değer ata :)
public function audi_rs7($benzin="",$aku=""){
if($aku>=10){
// aku 10 dan büyük ise
if($benzin>=10){
// benzin 10 dan büyük ise
echo "Araba Çalıştı";
}else{
// benzin 10 dan küçük ise
echo "Araba Çalışamaz. Benzin yok";
}
}else{
// aku 10 dan küçük ise
echo "Araba Çalışamaz. Akü gerekiyor";
}
}
}
?>
bu şekilde yazdık dostlarım :). Ekranımıza gelen çıktı aşağıdaki gibi olacaktır
Araba Çalışamaz. Akü gerekiyor
Evet dostlarım :). Artık parametreli fonksiyonu, zorunlu ve zorunsuz parametreleri rahat şekilde anlamışsınızdır. Kullanımı kolay ama ilk başlarda biraz karmaşık gelebilir :). Ama bunu istikrarlı çalışma ve bol pratik ile rahatça kavrarsınız :)
Umarım faydalı olabilmişimdir dostlarım :). Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar :)
Yazar Hakkında
Kendi Halinde Bir Backend Developer