PHP Class Üzerinde Yapıcı ve Yıkıcı Methodlar
Hepinize merhaba dostlarım :). Yazının başlığından da anlayacağınız üzere class larda yapıcı ve yıkıcı methodlardan bahsedeceğim :). Öncelikle class lar ile ilgili yazımı okumayan dostlarım için aşağıya linkleri bırakıyorum
1-) Class ve Nesne Kavramı: https://blog.mfsoftware.net/yazi/php-de-class-ve-nesne-kavrami
2-) Class Üzzerinde Parametreli Fonksiyonlar: https://blog.mfsoftware.net/yazi/php-class-uzerinde-parametreli-fonksiyonlar
Linklerinden erişebilirsiniz dostlarım :). Şimdi biz gelelim yapıcı ve yıkıcı fonksiyonlarımıza
Yapıcı ve Yıkıcı Method Nedir ?
Dostlarım mantıksal bir tanımlama yapmak istiyorum :). Teorik anlatımdan kaçınıp aklınızda yer etmesi sizin için çok faydalı olacaktır :). O halde sözü daha fazla uzatmadan başlayalım
- Yapıcı Method: Dostlarım yapıcı method biz class tan bir nesne oluşturur oluşturmaz yapıcı methodumuz çalışır. Bunu önceki yazılarımda yapmadık çünkü farklı bir şekilde ismi var her ismi veremiyoruz :). Bu methodumuzun ismi sürekli olarak __construct olarak tanımlanır. Bir kez çalışır.
- Yıkıcı Method: Bu method ise yapıcı methodu yok etmeye yarar dostlarım :). Yapıcı method içerisinde yapılacak görevler sonlandıktan sonra yıkıcı method ile artık o yapıcı methodun yaptığı işi sonlandırmak istediğimiz zamanlarda kullanabiliriz :). Bu methodumuzun ismi de sürekli olarak __destruct olarak tanımlanır. Bu da bir kez çalışır.
Çok zor bir şey olmadığını anlamış olmalısınız dostlarım :). Karmaşık gelmiş ise şimdi yapacağımız örnekte biraz daha zihninizde yer edecektir :). Sözü fazla uzatıyorum biliyorum kusuruma bakmayın :). Hızlıca işlemimize geçelim
<?php
class Araba{
public $benzin=100;
public $aku = 60;
// yapıcı methodumuz (1 kez çalışacak)
public function __construct(){
echo "Benzin durum: ".$this->benzin.", Akü durum: ".$this->aku."<br>";
}
public function araba_kullan(){
if($this->benzin>=50 && $this->aku>=10){
// akü 10 dan büyükse ve benzin 50 den büyükse
$this->benzin -=30;
$this->aku-=10;
echo "Araç Kullanıldı <br>";
}else{
echo "Aracın Benzin ve/veya aküsünü kontrol ediniz <br>";
}
}
// yıkıcı methodumuz (1 kez çalışacak)
public function __destruct(){
echo "Muhteşem Bir Yol Deneyimi Geçirdiniz :)";
}
}
$araba = new Araba(); // nesne oluşturduk
$araba->araba_kullan(); // nesne ile class içerisindeki bir methoda ilerlerdik
?>
bu şekilde kodlarımızı yazdık dostlarım. Şimdi olay şöyle işledi. Biz bu class ı oluşturduk ya ondan da bir nesne oluşturur oluşturmaz yapıcı methodumuz çalışacak ve ekrana ilk olarak "Benzin durum: 100, Akü durum: 60" yazısını basacaktır. Daha sonra index methoduna ilerlerdiğimiz için index methodu içinde kontrolleri yapacaktır. Benzin durumu 50 dan büyük ve akü durumu da 10 dan büyük olduğu için if şartı çalışacaktır. If bloğunun içerisinde araç kullanılacak ve benzin değeri -30, akü değeri ise -10 azalacaktır. Ve son olarak yıkıcı methodumuz çalışacak ve ekranımıza "Muhteşem Bir Yol Deneyimi Geçirdiniz :)" yazısını basacaktır :). Gelin ekran görüntüsünü kontrol edelim
Benzin durum: 100, Akü durum: 60 // yapıcı methodun çıktısı
Araç Kullanıldı // index methodunun çıktısı
Muhteşem Bir Yol Deneyimi Geçirdiniz :) // yıkıcı methodun çıktısı
gördüğünüz gibi dostlarım sağlamasını da yaptık ve hata yok :). Olay basit ama biraz karmaşık gelebilir. Sizlerden isteğim öğrenme süreciniz içerisinde bol istikrar ve sürekli pratik yapmanızdır.
Umarım faydalı olabilmişimdir dostlarım :) Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim :)
Yazar Hakkında
Kendi Halinde Bir Backend Developer