Php Class Yapısı

Kategori : Php Dersleri

Bu dersimizde Php ile ileri seviye kullanımda işinize yarayacak. daha doğrusu uzmanlık seviyesinde öğrenmek zorunda olacağınız class (sınıf) yapısına giriş yapacağız.

Normal koşullarda class yapısı kullanmadan birçok işinizi fonksiyonlarla halledebilirsiniz. Eğer fonksiyonların sağladığı kolaylığa alıştıysanız o zaman işinizi 3-4 kat daha da kolaylaştıracak bir yapıyı öğrenmeye ne dersiniz.

Herzaman olduğu gibi Öncelikle işin mantığına bakalım:

Class hazırlandıktan sonra aynı fonksiyonlar gibi tek satırda çağrılır. ve kendi başına bir değişken gibi davranır.

örnek: insan isimli bir kütüphane yaptık diyelim:

şu şekilde kullanıldığını görmeniz işin eğlenceli kısmını anlamanızı sağlayacak.

 

$ogrenci = new insan();

$ogrenci -> adi = "Ali";
$ogrenci -> soyadi = "Zeki";
$ogrenci -> dogum_tarihi=1990;  


$ogrenci -> adini_soyle();

$ogrenci -> yasin_kac();

Özellikle kırmızı ile gösterdiğim bölüme dikkat etmenizi istiyorum. değişkenler bir kez tanımlandıktan sonra fonksiyonların kullanımı çok kolay oluyor. işin tek zor kısmı kütüphaneyi ilk üretme aşaması. ama kütüphane yapmayı öğrendikten sonra başkalarının hazırladığı kütüphaneleri kullanmak çok kolaylaşıyor. herhangi bir hatası varsa onu giderdikten sonra birsürü hazır class emrinize olacak.

 

Şimdi insan isimli class kütüphanesini üretelim:

class insan
{
    public $adi;
    public $soyadi;
    public $dogum_tarihi=0;
    private $anne_kizlik_soyadi;

    function adini_soyle()
    {
        echo "Benim adım ". $this->adi ."<br>";
    }

    function yasin_kac()
    {
       $yas = date("Y") - $this->dogum_tarihi ;
       echo "Yaşım ".$yas ."<br>";  
    }

}


Sonuç:

Benim adım Ali
Yaşım 20


Class kullanımında dikkat edeceğiniz konulardan biri değişkenleri $this->degisken şeklinde yazarken $işareti sadece this kelimesi önünde bulunur. ikincisi private şeklinde tanımlanmış değişkenleri dışardan yazdırmak mümkün değildir.

örnek:

Aşağıdaki komut hata verecektir:

 

echo $ogrenci -> anne_kizlik_soyadi;

Sonuç:

Fatal error: Cannot access private property insan::$anne_kizlik_soyadi in test.php on line
32

private(kişisel)
bir değişken bu şekilde tanımlanmışsa sadece class içindeki fonksiyonlar tarafından kullanılabilir. class dışından yazdırma veya değiştirme yapılamaz.

 

örnek: aşağıdaki şekilde değişiklik yapılarak insan isimli class yapısını değiştirmemiz halinde "Anne kızlık adı" bilgisini öğrenebiliriz.

class insan
{
    public $adi;
    public $soyadi;
    public $dogum_tarihi=0;
    private $anne_kizlik_soyadi="zekiye";

    function adini_soyle()
    {
        echo "Benim adım ". $this->adi ."<br>";
    }

    function yasin_kac()
    {
       $yas = date("Y") - $this->dogum_tarihi ;
       echo "Yaşım ".$yas ."<br>";  
    }

   function anne_soyadi($istek)
    {
         if($istek=="lütfen")
         {
             echo "Annemin kızlık soyadı : ".$this->anne_kizlik_soyadi ;
         }else{
             echo "Nayırr, Söylemem";
         }     
    }

}

 

yeni fonksiyonu çağırmak için şöyle yazmak gerekir:

$ogrenci ->
anne_soyadi("lütfen");

sonuç:

Annemin kızlık soyadı : zekiye

Tabii buradaki uygulamada tüm bilgileri kendimiz girdiğimiz için pek mantıklı görünmüyor ama gerçekçi bir uygulamada bilgilerin class içindeki bir fonksiyon yardımıyla veritabanından alınarak gerekli yerlere doldurulduğunu düşünürsek ulaşmak istenen bilgilere erişimi kısıtlayan ve gerektiğinde çıktı veren güzel bir class olacaktır.

 

drekon 2010-01-10 16:48:12

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

uiea

barış barış Avatar

Elinizee sağlık, çok sağolun.

 

Class önemli bir yapı.

15-09-2010 13:52

    Teşekkürler....

    kadir Kadir Avatar

    Yazılarınız sade ve eğitici tebrik ederim....

    sizinde makalenenin sonda belirttiğiniz gibi gerçekçi bir örnekle olacağı makalelerinizi bekliyorum....

    Mesela Post, Get, Üyelik, Session Oturum yönetimleri gibi örneklerde olursa harika olacak.....

    Başarılarınızın devemanını dilerim...

    İyi çalışmalar

    18-11-2010 21:07

      oneri

      lahikmet hikmet al

      aslında küçük ve kapsayıcı bir portal düzenleyerek bunları uylama ile anlamak daha kolay olur

      zaman ayırırsanız minnettar oluruz

      26-01-2011 12:03

        teşekkür

        nonconquest Fatih

        öncelikle bilgilerinizi paylaştığınız ve bizlerinde faydalanmamızı sağladığınız için teşekkür ederim.

        Acizane bir önerim olacak, hikmet arkadaşımızında söylediği gibi sıfırdan başlayıp bir örnek üzerinde anlatım daha yararlı olur diye düşünüyorum. Bizlerde elimizden geldiğince hem fayda sağlarız hem de kendimizi geliştirmiş oluruz. Koly gelsin ii çalışmalar.

        06-09-2011 16:26

          teşekkür

          dilektok dilek tok

          Ders anlatımlarına devam ederseniz çok sevineceğim.

          Emeğinize sağlık... İi çalışmalar

          03-10-2011 03:01

            Teşekkürlerrrrrrr!!!!!!!

            mhmtcn54 mehmet

            İyiki varsınız ve bu siteyi kurmuşsunuz yeni başlayanlara öğretme amacını kolayca gerçekleştirebilen alanındaki benim gördüğüm yüzlerce site arasında tek diyebilirim.

            Lütfen bilgilerinizi paylaşmaya devam edin...

            26-07-2012 03:44

              www.Phpkodlari.com © 2009 Herkes Php öğrenecek
              Web tasarım ve eğitim kaynağınız.