Anasayfa » PHP » PHP5 | Sınıflar (class): Temel

PHP5 | Sınıflar (class): Temel

11 Nisan 2010  |  Yazar: coders  |  Yorum Yok  |  12 kez okundu
Facebook'da Paylaş Twitter'da Paylas FriendFeed'de Paylaş PHP5 | Sınıflar (class): Temel

Sınıf () Yapısı
Her sınıf tanımlaması bir anahtar sınıf ile başlar, bunu sınıf ismi takip eder ve bu ‘ nin kullandığı bir isim olmamalıdır. Bunu sınıfın üyeleri ve metodlar takip eder. Bir takma ad almış olan değişken, $this ile bir nesne içeriğinden metod çağırıldığı zaman kullanılabilir. $this çağırılan nesnenin referansıdır (genellikle metodun ait olduğu nesnedir, ama metod ikinci bir nesnenin içeriğinden sabit olarak çağırılırsa () başka bir nesne de olabilir.)

Bunun örneğini şöyle verebiliriz:

<?php

class A

{

   function foo()

   {

       if (isset($this)) {

           echo '$this tanimlanmistir (';

           echo get_class($this);

           echo ")n";

       } else {

           echo "$this tanimlanmamistir.n";

       }

   }

}

class B

{

   function bar()

   {

       A::foo();

   }

}

$a = new A();

$a->foo();

A::foo();

$b = new B();

$b->bar();

B::bar();

?>

Bu örneğin çıktısı şu olacaktır:

$this tanimlanmistir (a)
$this tanimlanmamistir.
$this tanimlanmistir (b)
$this tanimlanmamistir.

Örnek: tanımlanması

<?php

class BasitBirSinif

{

   // sınıfa eleman tanımlama

   public $degisken = 'bir sabit deger';

   // sınıfa metod tanımlama

   public function displayVar() {

       echo $this->var;

   }

}

?>

Bir nesnenin bir örneğini yaratmak için, yeni bir nesne yaratılmalıdır ve bir değişkene bağlanmalıdır. Bir nesne yeni bir nesne oluşturulurken her zaman bağlanmalıdır yoksa sürekli hata veren (exception error) bir kurucuya sahip olur (constructor).

Örnek: Bir örnek

<?php
$ornek = new BasitBirSinif()
?>

Bir nesnenin daha önceden yaratılmış bir örneğini yeni bir değişkene bağlarken, yeni değişken bağlanmış olduğu nesnenin aynı örneğine erişecektir. Bu davranış, örneklerden fonksiyonlara geçişte de aynıdır. Zaten yaratılmış bir nesnenin yeni bir örneği onu klonlayarak yapılabilir.

Örnek :

<?php

$baglanmis  =  $ornek;

$referans  =& $ornek;

$ornek->var = '$baglanmis bu degeri alacak';

$ornek = null; // $ornek ve $referans bos deger alacak

var_dump($ornek);

var_dump($referans);

var_dump($baglanmis);

?>

Bu örnek şu çıktıyı verecektir:

NULL
NULL
object(BasitBirOrnek)#1 (1) {
["var"]=>
string(30) "$baglanmis bu degeri alacaktır"
}

Bir sınıf, erişilecek olanın anahtar kelimelerini kullanarak başka bir sınıfın metod ve üyelerini devralabilir. Erişime birden çok sınıf açmak mümkün değildir, bir sınıf sadece bir sınıftan devralma yapabilir.

Alınan metodlar ve üyeleri, ana sınıf bir metodu aynı isimle bildirip son (final) olarak belirlemediği sürece önemsenmeyebilir. Önemsenmemiş metod ya da üyelere ana (parent) ile referans vererek erişmek mümkündür.

<?php

class DevralanSinif extends BasitBirSinif

{

   // ana metodu yeniden tanimlayin

   function displayVar()

   {

       echo "Sinifi devraliyorn";

       parent::displayVar();

   }

}

$devralindi = new DevralanSinif();

$devralindi->displayVar();

?>

Bu örnek şöyle çıktı verecektir:

Sinifi devraliyor
bir sabit deger

Facebok'ta Paylaş

Benzer Yazılar

Etiketler: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
avatar

Ahmet Ates

http://www.coders.gen.tr/ 25 yasindayim. Z.K.U Biyomedikal Cihaz Teknolojisi bölümünü okudum, Programlama dilleri arasindan ilgilendiğim ve profesyonel olarak hizmet verdiğim dil Fortran'dir. Web olarak Php,Css ve hazır sistemler olarak Wordpress ve Vbulletine hayranlık besliyorum.

Bu yazı hakkında birşeyler demek ister misiniz?

RSS üzerinden bu yazıya yapılan yorumları takip edin.

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir.

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Programlama