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:
{
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:
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.
{
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.

Teşekkürler....
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
oneri
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
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.
teşekkür
Ders anlatımlarına devam ederseniz çok sevineceğim.
Emeğinize sağlık... İi çalışmalar
Teşekkürlerrrrrrr!!!!!!!
İ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...