Tweet

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

Sınıf (class) 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 PHP' 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 (statically) başka bir nesne de olabilir.) [...]

Bunun örneğini şöyle verebiliriz:

CODE:
<?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: Basit sınıf (Simple Class) tanımlanması

CODE:
<?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 (instance) yaratmak

<?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 : Nesne Bağlanması

CODE:
<?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"
}

Erişim

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.

CODE:
<?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

orjinal: <a href=http://tr.php.net/manual/en/language.oop5.basic.php>http://tr.php.net/manual/en/language.oop5.basic.php</a>

by Dia & Ercan


Dia
okanatabag@gmail.com
4 Ocak 2006 17:27

İlgili Olabilecek Makaleler


Yorumlar (0)




Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg