Konu
:
Php class bileşenleri (public, private, static)
Tek Mesajı Görüntüle
22-Mayıs-2025, 15:11
#
1
Çevrimiçi
SynaX
Üye No:
1
Kayıt Tarihi:
26-Aralık-2024
Mesajlar:
907
Konular:
875
Nerden:
Bursa
Takımı:
Beşiktaş
Meslek:
Aldığı Beğeni:
4
Beğendikleri:
7
@
SynaX
Php class bileşenleri (public, private, static)
şimdi class için bir kaç açıklama yapacağım ve classlar ile ilgili bilgiler vereceğim.
bu derste php classlarda kullanılan;
private
public
static
__construct
__destruct
özelliklerine değineceğiz.
Haydi başlayalım ozamannn !
ilk olarak
public
özelliğine değinelim.
Public
özelliği verilen nesneler (fonksiyon yada değişkenler) dışardan değer alabililer.
"Hoca iyide dışardan derken ?" dediğinizi duydum sanki
Ozaman şöyle açıklayayım. biz sınıfı kullanmak için tanımlayacağız. ve tanımladıktan sonrada bu sınıf içindeki nesneleri kullanacağız değilmi ? Evet. Biz bunlara kullanırken değer versek ? harika olurdu değilmi ? ozaman ne yapıyoruz ?
hemmen bir sınıf oluşturuyoruz.
class
php_kodlari{
public
$site;
public
function
site_yaz(){
echo
$this->site;
}
}
Bu sınıfımızın, içindeki değişkenimizin ve fonksiyonumuzun kullanımı şu şekildedir;
$php_kodlari
=
new
php kodlari;
// sınıfımızı tanımladık.
$php_kodlari
->
site
=
'www.phpkodlari.com';
// sınıf içerisindeki $site değişkenine dışarıdan değer
vermiş olduk
$php_kodlari
->
site_yaz
();
// ve site yaz fonksiyonumuzu çağırdık.
Sonuç: Ekrana
www.phpkodlari.com
yazdı.
peki biz sınıf içerisindeki $site değişkenine dışardan başka bir siite adı yazsaydık ne olurdu ? elbetteki
ekrana başka bir site adı yazacaktı.
Şimdi de
private
özelliğine değinelim.
private
özelliği ise bir değişken yada fonksiyon dışardan değer alamaz. sadece o nesneyi sınıf içerisindeki nesneler kullanabilir.
Hatta siz bir nesneyi private tanımladığınızda sınıf : "private bizim namusuzdur. kimseye kullandırtmayız. Kullanan olursa kan çıkar !!! " der.
Ozaman
public
ile yaptığımız örneği
private
ile yapalım.
class
php_kodlari{
private
$site = 'www.phpkodlari.com';
public
function
site_yaz(){
echo
$this->site;
}
}
Bu örneği şöyle kullanacağız;
$php_kodlari
=
new
php kodlari;
// sınıfımızı tanımladık.
$php_kodlari
->
site_yaz();
// ve site yaz fonksiyonumuzu çağırdık.
sonuç: ekrana
www.phpkodlari.com
yazdı. Fakat bu defa sınıf içerisindeki
$site
değişkenine
dışardan değer vermeden yazdı. Peki neden dışardan değer vermedikte sınıf içinde değer verdik ?
İstesekte değer veremezdik çünki o
$site
değişkenini private tanımladık. Yani o artık ellerin oldu. Ona biz müdahale edemeyiz. O değişkene sadece o sınıfın elemanları erişim sağlayabilir.
Olarakta
drekon
hocamın bağırdığını hissettim. "o sınıf
Php Kodları
adresinden başka adres yazarsa o sınıfı yok ederim Ali fırat!" dediğini hissettim
Pekala. Biz erişemeyiz dediğimiz,
private
özellik verdiğimiz
$site
değişkenin içeriğini ekrana nasıl bastık ? Hani erişemiyorduk biz ona ?
Cevap: Biz doğrudan erişemedikki. biz
public
değeri verdiğimiz site_yaz fonksiyonunu kullandık.
site_yaz
fonksiyonu site değişkenine erişebilir. çünki aynı sınıftalar.
Şimdide
static
özelliğine geçelim.
static
olarak tanımlanan her nesne RAM bellekte saklanır. (Aslında hepsi ram bellekte saklanır fakat bu metodun saklanma şekli farklıdır) ve erişilmeside oldukça hızlıdır. Ayrıca static özelliği verdiğiniz bir nesneyi sınıfı bir değişkene tanımlamadan kullanabilirsiniz. Kısacası sınıf içindeki static bir nesne php tarafından her an kullanılabilir hale getiriliyor. hazır tutuluyor.
bu yüzden bir sınıf yapıyorsanız herşeye
static
özelliği vermek doğru değildir. Sadece çok sık kullandığınız fonksiyon ve değişkenlere
static
vermek daha doğrudur. Aksi halde boştan yere ram belleği doldurursunuz.
Ozaman bir örnek yapalım.
class
php_kodlari{
static
$site = 'www.phpkodlari.com';
static
function
site_yaz(){
echo
self::
$site;
}
}
Haydaaaa ! birde başımıza self çıktı ! Bu nedir hoca. dediniz eminim.
Normalde sınıf içerisinde bir nesneyi kullanacağımız zaman
$this->
ile çağırıyorduk.
fakat
static
olarak tanımladığınız bir nesneyi sınıf içerisinde bir yerde kullanacağınız zaman
$this->
yerine
self::
ile çağırıcağız.
Örnek kullanım:
$php_kodlari
=
new
php_kodlari;
// sınıfımızı tanımladık.
$php_kodlari
::
site_yaz();
// ve site yaz fonksiyonumuzu çağırdık.
Yukarda dikkat etmenizi istediğim bir yer var. oda bu ifade "
::
"
static
olarak tanımladığımız fonksiyonlarımızı o şekilde çağırırız.
Ayrıca static olarak tanımlanmış bir değişkenede dışardan erişilebilir.
örnek :
$php_kodlari
::
$site
;
şeklinde erişebiliriz.
Şinmdiiiii. Gelelim
__construct
methoduna. Bu method nedir ?
Adını bir türlü ezberleyemediğim bu method bir fonksiyona isim olarak verilir.
Ne işe yarar ?
sınıfı kullanırken sınıf tanımlandığı anda çalışır.
Hemmen bir örnek verelim.
class
php_kodlari{
static
$site = 'www.phpkodlari.com';
function
__construct(){
echo
self::$site;
}
}
şimdi gördüğünüz gibi static olarak bir site değişkenini tanımladım ve
__construct()
diye bir fonksiyon da tanımladım
bu fonksiyon $site değişkeninin içeriğini yazdırıyor. şimdi birde kullanımına bakalım;
$php_kodlari
=
new
php_kodlari;
// sınıfımızı tanımladık. hepsi bukadar
sınıfımızı tanımlamamız ile birlikte fonksiyonumz çalıştı. bizim çağırmamıza gerek kalmadan hemde.
Not: eğer
__construct
fonksiyonunuzda parametre varsa yani tanımlarken
__construct($ali,$veli)
şeklinde tanımlamışsanız kullanırkende şu şekilde kullanabiliriz.
Örnek Kullanım:
$php_kodlari
=
new
php_kodlari('deger1','deger2');
Şimdide de
__destruct()
fonksiyonunun ne işe yaradığını söyleyelim.
Yine adını ezberleyemediğim bu fonksiyon tıpkı
__construct()
fonksiyonu gibi kendisini çağırmadığımız halde terbiyesizlik yapar ve çalışır.
Peki bu fonksiyon ne yapar ? bu fonksiyon sınıf bitiminde otomatik çalışır. ben genelde temizleme işleri yapan fonksiyonlarımı bu şekilde tanımlıyorum.
Bir örnek yapalım:
class
php_kodlari{
private
$site;
function
__construct(){
$this->site='www.phpkodlari.com';
echo
$this->site;
}
function
__destruct(){
$this->site='Drekon Hoca';
echo
$this->site;
}
}
evet gördüğünüz gibi birinci fonksiyon ve ikinci fonksiyon çalışıcak.
Örnek kullanım:
$php_kodlari = new php_kodlari;
ekrana
www.phpkodlari.com
drekon
hoca yazacaktır.
İlk önce
__construct
Ve sınıfla bi işimiz kalmadığı için
__destruct()
fonksiyonu çalıştı.
SynaX
Herkese Açık Profili Görüntüle
Özel mesaj gönder
SynaX Tarafından Gönderilen Diğer Mesajları Bul