Php Class Yapısı.

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.

 

drekon2010-01-10 16:48:12

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

uiea.

barışbarışAvatar

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

Class önemli bir yapı.

2010-09-15 13:52:30

Teşekkürler....

kadirKadirAvatar

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

2010-11-18 21:07:57

oneri

lahikmethikmet 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

2011-01-26 12:03:01

teşekkür

ö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.

2011-09-06 16:26:15

teşekkür

dilektokdilek tok

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

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

2011-10-03 03:01:27

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

mhmtcn54mehmet

İ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...

2012-07-26 03:44:12

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