Get Adobe Flash player

PHP Sınıf (Class) – 2

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;
<strong>$ogrenci -> adini_soyle();</strong>

<strong>$ogrenci -> yasin_kac();</strong>

Ö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 ."
";
}

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

}

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 ."
";
}

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

function anne_soyadi($istek)
{
if($istek=="lütfen")
{
<strong> echo "Annemin kızlık soyadı : ".$this->anne_kizlik_soyadi ;</strong>
}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.

Share

Leave a Reply

Sayfa İçinde Ara
Son Yorumlar
Mart 2024
P S Ç P C C P
 123
45678910
11121314151617
18192021222324
25262728293031