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:
<?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ı
<?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ı
<?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
Benzer Yazılar
- PHP Aranan Kelimeleri Renklendirme
- PHP ile Güvenlik Kodu Oluşturma
- Blocking Unwanted Views
- Resim üzerine yazı yazma
- Değişken boş olup olmadığı kontrolü
- Birleşik Atama Operatörleri
- Resim Genişlik ve Yükseklik Bilgilerini ...
- CKEditor & CKFinder Kurulumu
- PHP Adres Defteri Alma
- PHP Resim Crop















